Bonjour,
Un collègue me demande de l'aide pour résoudre une recherche dans un fichier xlsx.
Je précise ce point car je ne peux pas changer l'architecture du fichier ce qui aurait permis d'autres approches pour répondre au besoin.
La solution doit être sans vba (ce serait trop simple ...).
Dans une feuille, il y a une plage de donnée qui contient des données dont la position est aléatoire.
Les données sont constituées d'un mot dans une cellule et d'un nombre associé dans une cellule adjacente.
L'objectif est de faire la somme des nombres qui ont le même mot associé.
Exemple (Mot1:10 ; Mot2:30 ; Mot1:5 ; Mot7:14 ; Mot2:17)
Si je recherche "Mot2" je souhaite obtenir 47 (30+17).
Comme la position des mots à rechercher est aléatoire, j'ai pensé utiliser une formule matricielle.
=SOMME(SI(Constat=B3;1;0)) //Constat est la plage de cellule (B5:I17) contenant les données
Cette formule fonctionne bien et permet de compter le nombre d'occurence du mot recherché.
J'ai voulu poursuivre avec cette formule pour sommer les nombres associés à ces occurrences.
=SOMME(SI(Constat=B3;INDIRECT(ADRESSE(LIGNE(Constat);COLONNE(Constat)+1);0)))
Problème : #REF!
J'ai décomposé la formule
=SI(Constat=B3;ADRESSE(LIGNE(Constat);COLONNE(Constat)+1);0))
Cela me renvoie bien une matrice avec l'adresse de chaque cellule répondant vrai au test logique
Le problème survient lorsque l'on ajoute INDIRECT dans la formule.
Avez-vous une explication du problème et/ou une solution ?
Cordialement.
Un collègue me demande de l'aide pour résoudre une recherche dans un fichier xlsx.
Je précise ce point car je ne peux pas changer l'architecture du fichier ce qui aurait permis d'autres approches pour répondre au besoin.
La solution doit être sans vba (ce serait trop simple ...).
Dans une feuille, il y a une plage de donnée qui contient des données dont la position est aléatoire.
Les données sont constituées d'un mot dans une cellule et d'un nombre associé dans une cellule adjacente.
L'objectif est de faire la somme des nombres qui ont le même mot associé.
Exemple (Mot1:10 ; Mot2:30 ; Mot1:5 ; Mot7:14 ; Mot2:17)
Si je recherche "Mot2" je souhaite obtenir 47 (30+17).
Comme la position des mots à rechercher est aléatoire, j'ai pensé utiliser une formule matricielle.
=SOMME(SI(Constat=B3;1;0)) //Constat est la plage de cellule (B5:I17) contenant les données
Cette formule fonctionne bien et permet de compter le nombre d'occurence du mot recherché.
J'ai voulu poursuivre avec cette formule pour sommer les nombres associés à ces occurrences.
=SOMME(SI(Constat=B3;INDIRECT(ADRESSE(LIGNE(Constat);COLONNE(Constat)+1);0)))
Problème : #REF!
J'ai décomposé la formule
=SI(Constat=B3;ADRESSE(LIGNE(Constat);COLONNE(Constat)+1);0))
Cela me renvoie bien une matrice avec l'adresse de chaque cellule répondant vrai au test logique
Le problème survient lorsque l'on ajoute INDIRECT dans la formule.
Avez-vous une explication du problème et/ou une solution ?
Cordialement.