Re : Combiner des tableaux en omettant les lignes vides
Bonjour
En A42
=SIERREUR(INDEX(H:H;PETITE.VALEUR(SI((H:H<>"Nom des contacts")*(H:H<>"?")*(H:H<>"");LIGNE(H:H));LIGNES(A$41:A41)));"")
(H:H<>"Nom des contacts") renvoie VRAI lorsque le contenu de la cellule en colonne H est différent de l'expression "Nom des contacts" et FAUX dans les autres cas.
(H:H<>"?") renvoie VRAI lorsque le contenu de la cellule en colonne H est différent de "?" et FAUX dans les autres cas.
(H:H<>"Noms des contacts")*(H:H<>"?") renvoie VRAI*VRAI, donc 1, lorsque le contenu de la cellule en colonne H:H est différent de "Noms des contacts" et de "?" (le produit remplace un ET).
Ainsi de suite avec les termes qu'on veut éliminer, ici "".
Si le produit (H:H<>"Nom des contacts")*(H:H<>"?")*(H:H<>"") renvoie 1; Excel garde en mémoire le n° de la ligne en cours.
PETITE.VALEUR(......;LIGNES(A$41:A41)) renvoie la première PETITE.VALEUR de la liste des n° de lignes gardées en mémoire, puis, en dessous, le second (LIGNES(A$41:A41) est devenu LIGNES(A$41:A42), ce qui donne 2), puis en dessous, le troisième, et ainsi de suite.
INDEX(H:H;PETITE.VALEUR(......)) renvoie le contenu de la ligne indiquée par PETITE.VALEUR de la colonne H:H.
Lorsqu'il ni y a plus rien à afficher, SIERREUR(......;"") renvoie "".
On travaille en matriciel, pour que la formule fasse le travail sur toute la colonne H:H et pas uniquement sur H1.
@ plus