Bonjour,
Antony,
Une idée intéressante mais attention !
EQUIV (Feuil2!A1 ; Feuil1!A1:G1 ; 0) donne 2
et
DECALER(Feuil1!B2 ;0 ; 2 ; NBVAL(Feuil1!B2:B65536) ; 1) donne finalement la plage D2 : D11 correspondant non pas à l'année 2010 mais à 2012.
marcb03,
Le problème ennuyeux, dans ta feuille 2, est (comme trop souvent) la fusion des cellules A1:A3 . Cela oblige à trouver une certaine périodicité qui , toutes les trois colonnes,
fera utliser une même plage de la feuille 1 pour le calcul (B2:B11 pour les colonnes A,B,C ; C2:C11 pour les colonnes D,E,F ...)
Première proposition avec la fonction DECALER proposée par Antony
Appelons catégories la plage A2:A11 de la feuille 1.
La formule de calcul = ENT(COLONNE()-1/3) + 1 donne lorsqu'elle est écrite dans une cellule d'une des trois colonnes A,B,C le même résultat 1 , ce qui est le nombre de
colonnes dont il faut décaler la plage nommée catégories pour obtenir la plage B2:B11 qui nous intéresse.
La même formule écrite dans une cellule des colonnes D,E,F renvoie 2 c'est à dire le nombre de colonnes dont il faut décaler la plage nommée catégories pour obtenir
la plage C2:C11 qui correspond à l'année 2011 ...
d'où la formule finale en A3 :
=SOMME.SI(catégories;A$2;DECALER(catégories;;ENT((COLONNE()-1)/3)+1))
Recopier cette formule vers la droite jusqu'en R3.
Cette proposition est mise en oeuvre dans la feuille 2 du classeur joint.
Deuxième proposition avec la fonction SOMMEPROD
En plus du nom catégories, utilisons le nom années pour la plage B1:G1 (feuil1) et le nom tabval pour la plage B2:G11 (toujours feuil1).
Se placer en A3 et définir un nouveau nom calculannée par :
=DECALER(Feuil3!$A$1;;3*ENT((COLONNE()-1)/3))
Ecrire alors en A3 la formule :
=SOMMEPROD((catégories=Feuil3!A$2)*(années=calculannée)*tabval)
et recopier cette formule vers la droite jusqu'en R3.
Cette proposition est mise en oeuvre dans la feuille 3 du classeur joint.
Remarque pour cette seconde démarche :
Si quelqu'un peut m'expliquer pourquoi, alors que cette démarche en deux temps (définition du nom calculannée puis formule) donne des résultats satisfaisants, l'écriture en A3 de la formule :
=SOMMEPROD((catégories=Feuil3!A$2)*(années=DECALER(Feuil3!$A$1;;3*ENT((COLONNE()-1)/3)))*tabval)
renvoie le message d'erreur #VALEUR!, merci d'avance!
Cordialement
Claude
Partager