XL 2013 Matrice : décaler en fonction d'un choix

erics83

XLDnaute Impliqué
Bonjour,

J'ai un calcul matriciel (je m'entraine), je cherche à calculer en fonction d'un choix :

1684167683155.png

si je choisis "ville", il va chercher dans la colonne Q, si "département" en P, etc...j'ai essayé de mettre une plage style P2:R85, mais cela n'a pas fonctionné....
Je débute sur les formules matricielles et j'essaye d'en comprendre le fonctionnement...

Merci pour votre aide,
Eric
 

Pièces jointes

  • Classeurtestmatrice.xlsx
    17 KB · Affichages: 6

job75

XLDnaute Barbatruc
Bonsoir erics83,

SOMMEPROD évite la validation matricielle, formule en X8 :
Code:
=SOMMEPROD((DECALER($P$2:$R$85;;SI(ESTNUM($W$2);0;SI(ESTTEXTE($X$2);1;SI(ESTNUM($Y$2);2))))=SI(ESTNUM($W$2);$W$2;SI(ESTTEXTE($X$2);$X$2;SI(ESTNUM($Y$2);$Y$2))))*($N$2:$N$85=X$7)*($O$2:$O$85=$W8)*$D$2:$D$85)
à tirer à droite et vers le bas.

S'il y a plusieurs valeurs dans W2:Y2 c'est la 1ère à gauche qui est considérée, les autres sont ignorées.

A+
 

Pièces jointes

  • Classeurtestmatrice.xlsx
    17.2 KB · Affichages: 7

erics83

XLDnaute Impliqué
Bonsoir Job75,

Une fois de plus, vous volez à mon secours.....Merci !
J'avais essayé avec SOMMEPROD, mais n'avais pas réussi...mais vous m'avez donné une belle piste !

Je vais analyser votre formule car je vais devoir l'adapter : pour mon classeur exemple, j'avais mis des nombres, mais en fait "Département" et "Arrondissements" sont des valeurs textes (j'ai mis 83, plutôt que "Var", pensant à l'exemple et pas à l'impact que cela pouvait avoir, je m'en excuse...), mais je pense avoir compris la logique : si nombre dans W, alors je mets 0, sinon je passe à la colonne suivante et si elle est alimentée, alors je mets 1, et ainsi de suite...j'ai 5 colonnes suivantes à mettre (canton, quartier, etc...), donc si j'ai bien compris la logique, je pense que je peux "adapter" votre formule.

Merci pour votre aide,
Eric
 

job75

XLDnaute Barbatruc
"Arrondissement" est un nombre, pas un texte. Par ailleurs ceci :
S'il y a plusieurs valeurs dans W2:Y2 c'est la 1ère à gauche qui est considérée, les autres sont ignorées.
n'est pas bien génial, j'en suis très conscient.

Pour faire mieux il faudrait sans doute du VBA.

Mais ce n'est pas le sujet de ce fil qui concerne avant tout la fonction DECALER.

Bonne nuit.
 

erics83

XLDnaute Impliqué
Bonjour Job75,

Merci pour vos éclairages,
Oui, avec VBA ça aurait plus "simple", mais je voulais savoir si cela était possible via formules, et vous l'avez très bien fait.
Et même si c'est pas "génial", cela fonctionne très bien et j'en ai compris la logique et donc je vous remercie à nouveau.
Merci pour votre aide,
Eric,
 

Lolote83

XLDnaute Barbatruc
Bonjour à tous
Comme le dit à juste titre notre ami @job75
Pour faire mieux il faudrait sans doute du VBA.
Mais ce n'est pas le sujet de ce fil qui concerne avant tout la fonction DECALER.
Donc, dans l'exemple ci-joint, je n'ai pas utilisé de VBA ni la fonction décaler mais je me suis servi de tableaux structurés et de listes déroulantes
C'est juste pour donner une autre façon de faire (à titre d'exemple)
Cordialement
@+ Lolote83
 

Pièces jointes

  • Copie de ERICS83 - Formule en fonction d'un choix.xlsx
    20.5 KB · Affichages: 4

job75

XLDnaute Barbatruc
Bonjour erics83, Lolote83, le forum,

Voyez le fichier joint et cette nouvelle formule en X8 :
Code:
=SOMMEPROD((ESTVIDE($W$2)+($P$2:$P$85=$W$2))*(ESTVIDE($X$2)+($Q$2:$Q$85=$X$2))*(ESTVIDE($Y$2)+($R$2:$R$85=$Y$2))*($N$2:$N$85=X$7)*($O$2:$O$85=$W8)*$D$2:$D$85)
Les contenus des cellules W2 X2 Y2 peuvent maintenant être quelconques.

Il n'est plus question de DECALER.

A+
 

Pièces jointes

  • Classeurtestmatrice(1).xlsx
    17.1 KB · Affichages: 3

Discussions similaires

Statistiques des forums

Discussions
312 235
Messages
2 086 476
Membres
103 228
dernier inscrit
malik832