Utiliser les fonctions INDEX et EQUIV avec des plages de cellules

Bonjour,

j'ai une ligne de valeur (texte seulement) sur la ligne 1 dans 3 plages distinctes.

A1:D1, G1:J1,M1:P1.

je cherche à récupérer la première (ou deuxième ou troisième) cellule non vide de ces 12 cellules.

J'y arrive pour une plage de cellule mais impossible de rechercher dans plusieurs plages de cellules non continues.

Merci d'avance

14test.xlsx (9.18 Ko)

Bonjour,

N'est-il pas plus simple de faire ceci:

=SUPPRESPACE(SI(A1<>"";A1;"")&" "&SI(B1<>"";B1;"")&" "&SI(C1<>"";C1;"")&" "&SI(D1<>"";D1;""))

Cdlt

Bonjour à tous !

Une proposition ?

Note : Merci de préciser,, dans votre profil, la nature de votre Excel ( Excel 2017 n'existe pas )

Merci pour vos retours à tous les deux. Excel 2019 pour ma version (j'ai corrigé le profil). je vous joins un nouvel exemple car je me suis mal exprimé. Je souhaite trouver la 1ère valeur non vide (mais ça pourrait être la 3ème) mais uniquement dans les colonnes des noms par exemple. La méthode des SI() fonctionne mais je peux avoir à tester 100 colonnes donc il me faut plus simple. Dans mon exemple, la fonction index me permet de rechercher la première non vide sur l'ensemble de la plage. j'aurai voulu pouvoir indique un ensemble de plage plutôt que la plage A1:L1.

Bonjour à tous !

j'aurai voulu pouvoir indique un ensemble de plage plutôt que la plage A1:L1.

Sans Microsoft 365, j'ai des doutes (euphémisme...) sur la faisabilité.

Je vous propose un ajustement de ma contribution initiale qui n'opère que sur le champ "nom" (mais qui reste sur l'idée de la plage unique) :

Bonsoir;

une petite recherche sur le web, je suis tombé net avec l'explication de la formule que veux 69MANU69

même moi j m'attendais pas à une telle utilisation de index(equiv ,,,, voir ce qui est en rouge dans le classeur: j fais par étape ta formule en M3, N3 et la formule finale en O3 avec des commentaires

Bonjour à tous !

@Kamel_G0411 : Le besoin de notre ami est de retourner "la 1ère valeur non vide (mais ça pourrait être la 3ème) mais uniquement dans les colonnes des noms."

Par ailleurs, avez-vous bien noté que dans son classeur de travail, il y avait + de 100 colonnes à traiter, ce qui donne + de 25 zones ?

Ok,

« Je souhaite trouver la 1ère valeur non vide (mais ça pourrait être la 3ème) mais uniquement dans les colonnes des noms »

Veut dire qu’il cherche toujours dans les noms, et que s’il demande par exemple la 2e valeur non vide, alors, le nom qui se trouve dans le premier groupe de 4 colonnes va être ignoré et nous renvoyer celui du 2e groupe ? c ça ?

Ok on va réfléchir donc dans ce sens ..

Je pense qu'il est utile aussi de donner le max de precisions :

  • Si ces groupes de 4 colonnes ont des espaces réguliers entre eux ou non.
  • S’ils sont délimités en nombre (ex 25 groupes de 4 colonnes) ou bien c’est ouvert
  • S’ils ont toujours le même nbre de 4 colonnes.

@tt

Bonjour à tous,

la formule que j'ai mise dans mon second fichier de test fonctionne et je n'ai pas de souci pour la comprendre. Ma seule problématique est que j'ai besoin de passer plusieurs plages dans ma formule index().

Ma formule pour une plage unique est :

=INDEX(A2:M2;1;EQUIV(VRAI;INDEX((A2:M2<>"");0);0))

Il est possible de passer plusieurs plages dans une formule INDEX() en y insérant une fonction INDIRECT() (cette procédure fonctionne également avec NBVAL(INDIRECT) et permet de compter des valeurs sur plusieurs plages de cellules non contiguës.

J'ai donc simplement remplacé dans ma formule INDEX() la matrice A2:M2 par INDIRECT({"A2";"E2";"I2"}) --> ce qui donne :

=INDEX(INDIRECT({"A2";"E2";"I2"});1;EQUIV(VRAI;INDEX((INDIRECT({"A2";"E2";"I2"})<>"");0);0))

La première partie de la formule soulignée ci-dessus fonctionne parfaitement.

L'erreur se produit sur INDEX((INDIRECT({"A2";"E2";"I2"})<>"");0).

Il parait que tout seul on va plus vite, mais qu'à plusieurs on va plus loin, aidez-moi à ne pas faire mentir ce proverbe :-)

Je vous remets le fichier de base :

pour répondre aux questions ci-avant, le groupe de 4 colonnes NOM prénom date de naissance et ville sera toujours ainsi.

Comme sur le fichier joint, à la suite les uns des autres et sans espace entre chaque colonne. la recherche du nom se fera donc sur les colonnes A, E, I, M, Q,...etc toutes les 4 colonnes.

J'ai ajouté une légende pour être le plus clair possible.

Bonsoir ;

oui effectivement, il y a un problème ; plus exctement dans {=INDIRECT({"A2";"E2";"I2"})<>""}

formule{=INDIRECT({"A2";"E2";"I2"})}{=INDIRECT({"A2";"E2";"I2"})<>""}
ce que affiche F9DUPRE;"DURAND";"LAPIN"{#VALEUR!;#VALEUR!;#VALEUR!}
ce qui s'affiche sur une cellule où elle est validéeDUPREVRAI

d'un côté elle sait nous dire est-ce VRAI ou FAUX d'un autre côté elle renvoi erreur !!!

à ceux qui peuvent expliquer ça !!

bonne nuit

Rechercher des sujets similaires à "utiliser fonctions index equiv plages"