Excel - 12 mois glissants
Répondre à la discussion
Affichage des résultats 1 à 10 sur 10

Excel - 12 mois glissants



  1. #1
    invite085425ee

    Excel - 12 mois glissants


    ------

    Bonjour,

    J'ai une feuille de données Excel avec trois colonnes, une pour le mois, une pour la nature de l'opération, une pour le montant de l'opération.
    J'ai créé un TCD à partir de cette feuille qui me donne la somme des montants par mois.

    Mon problème est que je souhaite ne faire apparaitre dans mon TCD que les 12 derniers mois et non tous les mois qui apparaissent dans la feuille de données (environ 2 ans de données).

    Avez-vous des idées pour faire ça ? J'ai essayé de faire un top 12 dans les paramètres de champ mais il me fait un classement des 12 mois avec les montants les plus hauts et pas juste les 12 derniers mois.

    Il y a surement une macro qui pourrait m'aider mais je ne suis pas encore très calé en macro.

    Merci d'avance !
    Ptigone

    -----

  2. #2
    pelkin

    Re : Excel - 12 mois glissants

    Bonjour,

    =SOMME.SI()
    C'est quoi TCD ?

    Bonne soirée

  3. #3
    invite085425ee

    Re : Excel - 12 mois glissants

    Oui pardon "Tableau Croisé Dynamique".
    Désolé pour le raccourci !

  4. #4
    Cyrille999

    Re : Excel - 12 mois glissants

    Bonjour ptigone,

    le TCD repose sur une sélection --- à toi de bien sélectionner uniquement les données qui te conviennent --


    Cyrille
    La connaissance est la matière première de l'Intelligence.

  5. A voir en vidéo sur Futura
  6. #5
    invite085425ee

    Re : Excel - 12 mois glissants

    Bonjour,

    oui effectivement je pourrais tous les mois changer ma sélection mais l'objectif est de le faire faire automatiquement par le tableau croisé.
    Dans mon exemple, c'est assez simple de le remettre à jour tous les mois, mais j'ai besoin d'utiliser cette technique pour des rapports où j'ai plus de 20 tableaux croisés. Et là ça devient très ennyuant de tout remettre à jour tous les mois.

  7. #6
    Philou67

    Re : Excel - 12 mois glissants

    Une idée à explorer (ce n'est pas une solution, il faudrait que tu fournisses un exemple pour aller plus loin) :
    - créer une copie de 12 lignes du tableau dont le contenu serait une copie des 12 derniers mois (par formule matricielle et recherche ?)
    - baser le TCD sur ce tableau intermédiaire

    Pour aller plus loin : comment spécifie tu les 12 derniers mois ? ce sont celles qui correspondent aux dernières lignes renseignées ?
    :'( Plus j'apprends, et plus je mesure mon ignorance

  8. #7
    Philou67

    Re : Excel - 12 mois glissants

    Un exemple ci-joint utilisant la fonction NB.SI pour compter le nombre de ligne non vide, et DECALER appliqué sur une matrice de 12 lignes (formule matricielle validée avec CTRL-SHIFT).
    Fichiers attachés Fichiers attachés
    :'( Plus j'apprends, et plus je mesure mon ignorance

  9. #8
    Xoxopixo

    Re : Excel - 12 mois glissants

    Citation Envoyé par ptigone
    Mon problème est que je souhaite ne faire apparaitre dans mon TCD que les 12 derniers mois et non tous les mois qui apparaissent dans la feuille de données (environ 2 ans de données).
    Je n'ai pas Excel donc je peut pas me faire une idee claire à partir de ton zip, mais, il y a quelque-chose que je ne comprend pas.
    Elles est stoquée ou l'année ?
    Sinon, le principe du TCD me parait bon, il suffirait d'avoir sur la feuille de donnees une colonne du type concatenné, du genre ANNEE_MOIS
    et de faire ton top 12 sur cette colonne.
    Ca t'eviterait une macro qui ferait le reajustage de la selection de la zone de données de la feuille de données (apres tri par annee , mois sur celui-ci) puis un refresh.

    Mais bon c'est vrai que c'est pas toujours evident d'avoir quelque-chose de simple avec Excel du premier coup.

  10. #9
    bzh_nicolas

    Re : Excel - 12 mois glissants

    Essayes d'adapter cette formule, je suis parti du principe que le mois est dans la 1ère colonne et la valeur à additionner dans la seconde :
    Code:
    =SOMME(INDIRECT(ADRESSE(NBVAL(A:A)-11;2;1)):INDIRECT(ADRESSE(NBVAL(A:A);2;1)))
    NBVAL(A:A) : nombre de mois ayant été "écrit"
    NBVAL(A:A) - 11 : on remonte 11 cellules plus haut
    ADRESSE(NBVAL(A:A);2;1)) : les paramètres sont : numéro de ligne ; numéro de la colonne ; 1 signifie adresse absolue
    INDIRECT(...) : transforme l'adresse en une valeur utilisable par excel.

    Par exemple, si tu as 14 mois dans ton tableau :
    "NBVAL(A:A)" va te donner 14
    "NBVAL(A:A) -11" va te donne 3
    "ADRESSE(NBVAL(A:A)-11;2;1)" va te donner $B$3
    "ADRESSE(NBVAL(A:A);2;1)" va te donner $B$14
    La formule complète fera : = somme($B$3:$B$14)
    Ce qui doit bien faire 12 mois glissant, par contre je n'ai pas testé sur un TCD, à voir si ça marche.

  11. #10
    invite085425ee

    Re : Excel - 12 mois glissants

    Bonjour,

    Merci pour votre aide !! J'ai testé vos solutions, j'ai finalement opté pour la solution de Xoxopixo qui était plus légère de concaténer ANNEEMOIS et de faire un top 12 dessus. C'est parfait pour mon problème.

    Les autres solutions étaient bien aussi mais j'avais considérablement simplifier le problème. En réalité j'ai une liste de 15 colonnes et plus de 10000 lignes et je fais des TCD énormes à partir de ça donc il me fallait qqch de léger.

    Merci à tous pour votre aide !! Ce forum est génial
    A bientôt
    Ptigone

Discussions similaires

  1. Transfert Automatique de cellules Excel vers Excel
    Par invite262604eb dans le forum Logiciel - Software - Open Source
    Réponses: 25
    Dernier message: 22/01/2018, 20h55
  2. theoreme des plans glissants (SI)
    Par inviteec93387f dans le forum Physique
    Réponses: 0
    Dernier message: 22/02/2008, 13h47
  3. Problème conversion fichiers excel PC vers excel MAC
    Par invite6b974360 dans le forum Logiciel - Software - Open Source
    Réponses: 4
    Dernier message: 14/11/2007, 21h31
  4. Journee de l'enfant de 3 mois à 9 mois
    Par inviteaac400fd dans le forum Psychologies (archives)
    Réponses: 0
    Dernier message: 09/01/2006, 11h31