Lister avec un élément commun

Bonjour à tous,

Je me heurte à un problème que je n'arrive pas à localiser et je fais donc appel à vous.

J'aimerai pouvoir lister tous les éléments d'un tableau qui partagent une même caractéristique, listée dans une colonne adjacente.

Schématiquement cela ressemblerait à :

Données

A / B /C

46/ BOB / 1 /

47/ JO / 1 /

48/ SAM / 2 /

49/ LOU / 1 /

50/ MAT / 2 /

Résultat

Je veux connaître qui est à l'entrepôt "1" dans une première colonne, et qui est dans l'entrepôt 2 dans une deuxième colonne. Et ainsi de suite

J'obtiens donc une liste

B / C /

1/ BOB / SAM /

2/ JO / MAT /

3/ LOU / /

J'ai trouvé une formule permettant de faire cela que je vous ai mis en annexe, sauf que je n'arrive pas à l'adapter à mon fichier.

Je pense que là où ça coince, c'est au niveau des colonnes et lignes de la partie INDEX de la formule, je ne comprend pas son fonctionnement.

S'il vous faut plus de précision, n'hésitez pas à me demander !

PS : Je bloque depuis un moment déjà, j'aimerai pouvoir continuer et c'est une étape cruciale

16exemple.xlsm (131.61 Ko)

UP

Bonsoir,

Une proposition en utilisant matriciellement sur 5 lignes la fonction recherchevm que j'ai développée.

RECHERCHEVM(argument, plage, indice colonne de la plage)

47exemple1.xlsm (137.00 Ko)

Merci beaucoup Thev !

C'est exactement ce que je recherche !!! Vraiment bravo pour avoir développé cette fonction ! Excel devrait l'incorporer directement C'est super simple d'utilisation.

J'ai par contre un petit problème d'applicabilité. Comment fais tu pour appliquer ta formule sur les 5 lignes ? Je veux dire, et si je souhaite avoir une liste de 10 au lieu de 5, comment dois je procéder ?

Pour appliquer la formule sur 10 lignes par exemple :

1- sélectionner la cellule de la première ligne

2- étendre la sélection de 10 lignes

3- saisir la formule avec la fonction "Transpose" : =Transpose(RECHERCHEVM(argument; plage; indice colonne de la plage))

4- entrer la formule sous forme matricielle via les touches Crtl +Shift + Entrée

Pour appliquer la formule sur 10 colonnes par exemple :

1- sélectionner la cellule de la première colonne

2- étendre la sélection de 10 colonnes

3- saisir la formule avec la fonction RECHERCHEVM(argument; plage; indice colonne de la plage)

4- entrer la formule sous forme matricielle via les touches Crtl +Shift + Entrée

NB:

La fonction Transpose est nécessaire lorsque la formule est étalée sur plusieurs lignes.

Mettre les cellules concernées au format personnalisé "#" pour supprimer les 0 correspondant aux valeurs inexistantes.

J'essaye demain matin, je te tiens au courant !

Thev,

Pour une raison qui m'échappe, je n'arrive pas à répliquer ta solution sur un autre fichier.

Il s'agit pourtant de la même feuille sur laquelle tu as appliqué la formule. Les emplacements des cellules sont les mêmes, le format # est appliqué, les plages sélectionnées sont identiques. J'ai aussi copié ton module.

Je te joins le fichier, est ce que tu pourrais m'éclairer sur l'erreur que j'ai dû commettre lors de l'exécution ?

10exemple2.xlsm (86.96 Ko)

Bonjour,

En fait 2 soucis :

1- indice de la colonne erroné. Du coup, j'ai remplacé le nombre par la formule : COLONNE($JA14)-COLONNE(B14) pour la colonne C, ce qui permet une duplication simple de la formule générale sur les colonnes suivantes.

2- dans la colonne JA, j'ai supprimé les cellules fusionnées afin de retrouver la valeur correspondante à ligne sélectionnée par la recherche.

NB : recopier mon module car j'ai dû le modifier pour l'indice de la colonne.

8exemple3.xlsm (87.75 Ko)

Super ! C'était donc la fusion des cellules qui faisait planter tout ça Ca fonctionne maintenant !

Afin de rendre l'outil adapté à toutes les situations et avec le minimum d'action à faire, je souhaite faire disparaître les #N/A lorsqu'il n'y a pas de valeur. Aussi, lorsque l'argument est "inacceptable", aucune filière ne doit s'afficher et non pas toutes filières listées "inacceptable".

Toutefois je n'arrive ni à appliquer EST.NA ni SI en complément de ta formule. Est ce que je m'y prend mal, ou le fait que ça soit une formule matricielle m'empêche d'ajouter cette action ?

Ca aurait donné =EST.NA((Si(X1="Inacceptable";Y1="";TRANSPOSE(RECHERCHEVM(.....)

;"";Si(X1="Inacceptable";Y1="";TRANSPOSE(RECHERCHEVM(....))

Bonsoir,

En cas de recherche infructueuse, le plus simple est d'utiliser la fonction SIERREUR. Formule matricielle en colonne F :

=TRANSPOSE(SI(F$10="Inacceptable";"";SIERREUR(RECHERCHEVM(G$10;G$76:$JA$98;COLONNE($JA14)-COLONNE(F14));"")))
10exemple4.xlsm (87.80 Ko)
thev a écrit :

Bonsoir,

En cas de recherche infructueuse, le plus simple est d'utiliser la fonction SIERREUR. Formule matricielle en colonne F :

=TRANSPOSE(SI(F$10="Inacceptable";"";SIERREUR(RECHERCHEVM(G$10;G$76:$JA$98;COLONNE($JA14)-COLONNE(F14));"")))

Effectivement ça fonctionne beaucoup mieux

Est ce que je peux te demander une dernière chose pour que ça soit parfait ?

Pour que ça ne soit pas trop fouillis, il faudrait que les résultats identiques ne s'affichent pas

Bonsoir,

Les résultats identiques sont liés à un décalage dans les formules des colonnes C, D, E, F.,G

ci-dessous correction

17exemple5.xlsm (87.93 Ko)

Merci beaucoup Thev ! Tout marche à merveille maintenant

Passe une bonne journée

Rechercher des sujets similaires à "lister element commun"