Croisement de cellules Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
c
clg
Nouveau venu
Nouveau venu
Messages : 3
Inscrit le : 15 juin 2015
Version d'Excel : 2003 FR

Message par clg » 15 juin 2015, 14:41

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
Exercice croisement.xls
(13.5 Kio) Téléchargé 7 fois
Avatar du membre
Banzai64
Fanatique d'Excel
Fanatique d'Excel
Messages : 16'701
Appréciations reçues : 4
Inscrit le : 21 novembre 2010
Version d'Excel : 2003 FR (learning 2010 - 2013)

Message par Banzai64 » 15 juin 2015, 14:58

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
h
h2so4
Passionné d'Excel
Passionné d'Excel
Messages : 8'980
Appréciations reçues : 359
Inscrit le : 16 juin 2013
Version d'Excel : 365 UK Windows 10

Message par h2so4 » 15 juin 2015, 15:00

bonjour,

essaie avec index, equiv droite et gauche
c
clg
Nouveau venu
Nouveau venu
Messages : 3
Inscrit le : 15 juin 2015
Version d'Excel : 2003 FR

Message par clg » 16 juin 2015, 09:22

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
Avatar du membre
Banzai64
Fanatique d'Excel
Fanatique d'Excel
Messages : 16'701
Appréciations reçues : 4
Inscrit le : 21 novembre 2010
Version d'Excel : 2003 FR (learning 2010 - 2013)

Message par Banzai64 » 16 juin 2015, 09:48

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)
c
clg
Nouveau venu
Nouveau venu
Messages : 3
Inscrit le : 15 juin 2015
Version d'Excel : 2003 FR

Message par clg » 18 juin 2015, 08:30

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
Exercice croisement 2.xls
(13.5 Kio) Téléchargé 6 fois
Avatar du membre
Banzai64
Fanatique d'Excel
Fanatique d'Excel
Messages : 16'701
Appréciations reçues : 4
Inscrit le : 21 novembre 2010
Version d'Excel : 2003 FR (learning 2010 - 2013)

Message par Banzai64 » 18 juin 2015, 09:28

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
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message