Croisement de cellules

Bonjour,

Je réalise actuellement un exercice de type croisement sur Excel 2003.

Je suis face à un tableau de nom de colonnes A,B,C et de ligne 1,2,3. A l'intérieur de ce tableau différentes valeur.

En dessous une colonne avec A1,A2,A3, B1... Dans cette colonne je dois retrouver la somme des valeurs entre la colonne A et la ligne 1

Les particularités de cet exercice sont 4 conditions :

  • Pas de TCD, pas de VBA, pas de matricielles
  • La colonne A1, A2... doit rester sous la forme d'une seule colonne. Et le tableau de départ doit rester sous cette forme.
  • Il faut le moins de modifications de formules possible. Dans l'idéal, une seule formule en A1 puis on étend la formule vers le bas
  • Dans le cas ou je rajoute une ligne "1" (par exemple) en plus dans le tableau. Les résultats A1,A2,A3 doivent se mettre à jours.

Cependant, il est possible de créer d'autres tableaux, d'autres colonnes que je cacherai par la suite

J'ai essayé de répondre à l'exercice avec des formules de types equiv, index, somme.si, concatener mais sans succès, je commence à sécher pour être honnête ^^

Je me permet de vous joindre l'exercice afin d'améliorer la compréhension de mon problème.

Merci par avance.

Cordialement,

Clg

Bonjour et bienvenu(e)

Pour commencer (je ne pense pas aller plus loin)

Formule en B6 et à tirer vers le bas

=INDEX($B$2:$D$4;EQUIV(DROITE($A6;1)*1;$A$2:$A$4;0);EQUIV(GAUCHE($A6;1);$B$1:$D$1;0))

Jolie comme formule mais si tu augmentes le tableau, elle va avoir des limites

bonjour,

essaie avec index, equiv droite et gauche

Bonjour,

Un grand merci pour votre aide cela fonctionne parfaitement !

Je ne connaissais pas la combinaison d'equiv + droite. A ce propos, pourriez-vous m'éclaircir sur l'importance du DROITE et GAUCHE afin que la formule se réalise svp?

De plus dans la formule : =INDEX($B$3:$D$5;EQUIV(DROITE($A7;1)*1;$A$3:$A$5;0);EQUIV(GAUCHE($A7;1);$B$1:$D$1;0))

Je ne comprend pas la multiplication par 1

Bien cordialement,

Clg

Bonjour

On décompose la cellule

Partie gauche,1 caractère ( GAUCHE($A7;1) ) que l'on cherche dans la zone B1:D1

Partie droite,1 caractère ( DROITE($A7;1) ) que l'on cherche dans la zone A3:A5, mais comme on cherche un chiffre et que la fonction DROITE() retourne une chaine de caractère, on multiplie par 1 (opération nulle) afin de transformer ce chiffre (chaine de caractère) en chiffre (nombre)

Bonjour,

Merci pour ces précisions qui m'aident à comprendre la formule.

Comme dis précédemment la formule fonctionne parfaitement dans le cas d'un tableau qui n'évolue pas. Cependant, dans le cas présent le tableau va s'agrandir (au minimum au niveau des lignes). Hors, la formule ici présente ne permet pas de prendre en compte ces évolutions.

Par exemple dans le cas de l'ajout d'une nouveau ligne dans le tableau avec en libellé de ligne "1" et en valeur 12. La somme de A1 devrait faire donc 22 (les 10 de départs + les 12 de la nouvelle ligne). Hélas, après augmentation de la plage des formules le résultat devient seulement "12". La valeur 12 remplace la valeur 10 alors qu'elle devrait s'y ajouter.

Auriez-vous une solution ou piste de solution afin de palier à ce problème ?

Ci-joint le fichier d'exemple avec mon problème

Cordialement,

Clg

Bonjour

Attention les formules ne sont pas ma tasse de thé

Formule en B7 et à tirer vers le bas

=SOMME.SI($A$2:$A$5;DROITE($A7;1);DECALER($A$2:$A$5;;EQUIV(GAUCHE($A7;1);$B$1:$D$1;0)))

Je te laisse décortiquer la formule

Rechercher des sujets similaires à "croisement"