Formule Excel: plusieurs correspondances dans une liste séparée par des virgules -

Table des matières

Formule générique

(=TEXTJOIN(", ",TRUE,IF(rng1=E5,rng2,"")))

Sommaire

Pour rechercher et récupérer plusieurs correspondances dans une liste séparée par des virgules (dans une seule cellule), vous pouvez utiliser la fonction IF avec la fonction TEXTJOIN. Dans l'exemple illustré, la formule en F5 est:

(=TEXTJOIN(", ",TRUE,IF(group=E5,name,"")))

Il s'agit d'une formule matricielle et doit être saisie avec Ctrl + Maj + Entrée.

Cette formule utilise les plages nommées «nom» (B5: B11) et «groupe» (C5: C11).

Explication

Le cœur de cette formule est la fonction IF, qui "filtre" les noms du tableau par couleur comme ceci:

IF(group=E5,name,""))

Le test logique vérifie chaque cellule de la plage nommée «groupe» pour la valeur de couleur en E5 (rouge dans ce cas). Le résultat est un tableau comme celui-ci:

(FALSE;FALSE;TRUE;TRUE;FALSE;FALSE;TRUE)

Ce résultat est utilisé à son tour pour filtrer les noms de la plage nommée "nom":

("Matt";"Sally";"Jude";"Aya";"Elle";"Linda";"George")

Pour chaque TRUE, le nom survit, pour chaque FALSE, IF renvoie une chaîne vide ("").

Le résultat des regards IF est ce tableau:

("";"";"Jude";"Aya";"";"";"George")

qui entre dans la fonction TEXTJOIN en tant que text1.

TEXTJOIN est configuré pour utiliser une virgule comme délimiteur et pour ignorer les valeurs vides. Le résultat final est cette chaîne de texte:

«Jude, Aya, George»

Conditions multiples

Vous ne pouvez pas utiliser les fonctions AND ou OR dans une formule matricielle comme celle-ci car elles ne renvoient qu'un seul résultat. Vous pouvez utiliser une logique booléenne comme celle-ci pour AND:

=TEXTJOIN(", ",TRUE,IF((condition1)*(condition2),name,""))

Expliqué plus en détail ici.

Articles intéressants...