rechercher le numéro d'une colonne selon un critère

Edwige

XLDnaute Nouveau
Bonjour,

Je souhaiterai récupérer le numéro d'une colonne selon l'activité en C2 (a récupérer dans l'onglet Détail), pour pouvoir comptabiliser les données .
Combien de 0 pour le service A, service B, .... selon l'activité choisie.
Cf pièce jointe

Sinon avez vous une autre solution pour que je puisse remplir mon tableau de synthèse automatiquement en fonction de la liste déroulante en C2 ?

Merci pour votre aide
 

Pièces jointes

  • TB_Matrice.xlsx
    19.3 KB · Affichages: 22

JHA

XLDnaute Barbatruc
Bonjour à tous,


Une solution avec sommeprod() en "C5"
Code:
=SOMMEPROD((Détail!$A$3:$A$45=Synthese!$B5)*(Détail!$C$2:$J$2=Synthese!$C$2)*ESTNUM(Détail!$C$3:$J$45)*(Détail!$C$3:$J$45=COLONNE()-3))
A copier vers la droite et le bas

JHA
 

Pièces jointes

  • TB_Matrice.xlsx
    19.3 KB · Affichages: 19

JHA

XLDnaute Barbatruc
Bonjour à tous,

Code:
Détail!$C$3:$J$45=COLONNE()-3)

Si la formule se situe en colonne "C", la fonction =colonne() te renvoie le chiffres 3.
Colonne()-3 te renvoie donc le chiffre "0".
Si la formule se situe en colonne "D", la fonction =colonne() te renvoie le chiffres 4.
Colonne()-3 te renvoie donc le chiffre "1".
Autrement si tu mets un zéro au lieu de la lettre "O" en cellule "C3"
tu peux remplacer colonne()-3 par GAUCHE(C$3;1)*1

JHA
 

vgendron

XLDnaute Barbatruc
Hello à tous

alors.. je vais essayer de t'expliquer les éléments de ma solution (qui, de mémoire, ne donne pas les meme résultats que JHA)

pour simplifier / clarifier les formules, je passe très souvent par des zones nommées
Zone: "Compétences" qui est la range C2:O2 de la feuille détail
ainsi.. au lieu de voir dans tes formules ...Détail!C2:O2 c'est remplacé par "Compétences"

idem pour la zone Services = A3:A45
et la zone tabData = C3:O45

le sommeprod est une fonction MATRICIELLE (la seule qui n'a pas besoin d'une validation Ctrl+Maj+Entrée, mais juste Entrée)

SOMMEPROD((compétences=$C$2)*(Services=$B5)*(TabData=COLONNE()-3))

pour la partie PROD de sommeprod..
ca génère des faux et des vrais (boolean). qui multipliés par une valeur donne la valeur si vrai, ou 0 si faux..

(Compétences=C2): donne une ligne avec des faux et UN vrai (celui de la compétence cherchée)
(Services=$B5) =donne une colonne avec des faux et DES vrai

une ligne de boolean * une colonne de Boolean = matrice de boolean
TabData=colonne()-3 ===> te donne une matrice qui contient les valeurs souhaitées
en colonne C==> TabData te donne juste les Zeros
en colonne D ==> donne les 1 ....jusqu'à 5

et donc..une matrice de boolean par unen matrice de valeurs = matrice de valeurs
Vrai*valeur = valeur
Faux*Valeur=0 (et je crois que c'est de la que vient le problème de résultats différents avec JHA....)

pour la partie SOMME de sommeprod
calcul la somme des valeurs de la matrice..
et voila !!
Simple non?? :-D
 

Edwige

XLDnaute Nouveau
Merci pour toutes ces explications et vos 2 solutions fonctionnent ! Merci beaucoup !
Je travaille beaucoup aussi avec les zones nommées, c'est plus facile je trouve.
Mais j'ai toujours un peu de mal avec ce TabData=colonne()-3. si on insère une colonne, il y a toujours TabData=colonne()-3 ...... :oops: ..... cela fonctionne, ça me bluffe ... :)
Comment excel sait que la colonne G (onglet synthese) correspond à l'expertise et comptabilise uniquement le nombre de 4 ?? ....
 

vgendron

XLDnaute Barbatruc
Je viens de voir que la correction que je t'avais proposée était... stupide...
le but du si (C4<>""... est de ne pas mettre de résultat.. et moi.. je fais quoi.?? je met un 0 !!

donc ceci est mieux

SI($B5<>"";SOMMEPROD((compétences=$C$2)*(Services=$B5)*(ESTNUM(TabData))*(TabData=COLONNE()-3));"")
 

Discussions similaires

Statistiques des forums

Discussions
311 724
Messages
2 081 938
Membres
101 844
dernier inscrit
pktla