Plage de cellule dynamique

Bonjour,

J'ai un tableau présentant les mois de l'année en colonnes (B1 à M1) et des chiffres d'affaires mensuels (B2 à M2).

L'idée est simple: écrire une fonction qui calcul un cumul en fonction du mois sélectionné en A1. Par exemple si je sélectionne Avril en A1 je trouve "somme(B2:E2)". Donc je cherche à rendre la plage de cellule de la fonction somme dynamique en fonction du mois sélectionné.

Evidemment il y a la fonction "si" à rallonge: si(A1="Janvier";B2;si(A1="février";somme(B2:C2);si(A1="mars";somme(B2:D2)...... Mais c'est galère, et il y a certainement une fonction beaucoup plus simple et rapide.

Merci d'avance pour votre aide.

Bonne journée,

PS: EXCEL 2007


Dans "alcool" y a "cool"!!

4 réponses

  1. le 3° paramètre indique le nombre de lignes prises, et le 4° le nombre de colonnes prises
    =SOMME(DECALER($B$2;0;0;1;EQUIV($A$1;$B$1:$M$1;0)))
    devient si tu veux prendre 2 lignes
    =SOMME(DECALER($B$2;0;0;2;EQUIV($A$1;$B$1:$M$1;0)))

    RQ. Excel possède une rubrique d'aide très bien faite

    Bonne fin de journée
    0
    1. Ok merci beaucoup.

      Et si maintenant je complique un peu les choses et que j'ai deux sources de chiffre d'affaires mensuel en B2:M2 et B3:M3, comment est-ce que je fais pour étendre la sélection sur l'ensemble de ces deux lignes et avoir, par exemple, pour avril: somme(B2:E2;B3:E3)? (le cumul total du chiffre d'affaires mensuel)

      En gros comment utilise-t-on la fonction décaler sur deux lignes simultanées?

      Merci pour votre aide en tout cas, c'est top!!
      0
      1. Bonjour

        essaies ceci
        A2=SOMME(DECALER($B$2;0;0;1;EQUIV($A$1;$B$1:$M$1)))

        bonne suite
        0
        1. Contributeur
          Bonjour lemacro, ccm81

          ccm81 une petite faute de frappe :o) dans equiv
          EQUIV($A$1;$B$1:$M$;0)
          0
        2. exact et merci michel

          Je suppose que tu as voulu vérifier si j'étais bien réveillé en raccourcissant la plage ;-))
          donc .... je suis bien réveillé et remets tout au cas où

          =SOMME(DECALER($B$2;0;0;1;EQUIV($A$1;$B$1:$M$1;0)))

          Bonne journée à toi

          cordialement
          0