Faire évoluer une formule dans sa recherche

Bonjour,

Je ne sais pas si mon titre est correct par rapport à ma demande, mais je vous explique.

J'utilise cette formule pour récupérer la première cellule vide d'une valeur spécifique dans une plage de données ( Inv & C16)

=INDEX(Base2!J7:J1000; EQUIV(FAUX; ESTVIDE(INDIRECT("Base2!" & ADRESSE(7; EQUIV("Inv " & $C$16; Base2!6:6; 0)) & ":" & ADRESSE(1000; EQUIV("Inv " & $C$16; Base2!6:6; 0)))); 0))

Cette formule est collée en feuille Base et je cherche comment écrire la formule pour avoir la suite de la liste recherchée dans les autres cellules.

Je cherche également à ne pas prendre en compte les 0 et les -.

Pour l'exemple donné, j'ai volontairement nettoyé les lignes concernées de la colonne ou je fais la recherche, mais mon tableau de travail et assez gros et j'aimerais que la formule ignore ces deux derniers.

Deux demandes :

Comment continuer la recherche

Comment ignorer les 0 et -

Merci pour votre aide.

18test-formule.xlsx (12.75 Ko)

Hello,

Une proposition à mettre en E4

=SIERREUR(INDIRECT(ADRESSE(
GRANDE.VALEUR(N(SIERREUR(--(DECALER(Base2!$A$6:$A$40;;EQUIV("Inv "&Base!$C$16;Base2!$6:$6;0)-1;;));0)>0)*LIGNE(Base2!$A$6:$A$40);LIGNE()-3);
10;4;;"Base2"));"")

@+

7test-formule.xlsx (12.75 Ko)

Bonjour,

Merci cela fonctionne parfaitement sur le fichier test, sur mon classeur de travail cela me renvoi un vide.

Pourtant je n'ai pas changer beaucoup de choses, mise à part nom de feuille et Inv pour mettre à jour par rapport à mon classeur et la dimension.

=SIERREUR(INDIRECT(ADRESSE(
GRANDE.VALEUR(N(SIERREUR(--(DECALER(Base_Capex!$A$6:$A$285;;EQUIV("Invest "&Base!$C$16;Base_Capex!$6:$6;0)-1;;));0)>0)*LIGNE(Base_Capex!$A$6:$A$285);LIGNE()-3);10;4;;Base_Capex));"")

J'ai refais le test mais, avec la formule comme ci-dessus, comme pour mon classeur de travail.

Et j'ai le même souci avec le fichier test

J’avoue ne pas voir ou cela peut clocher

18test-formule.xlsx (15.58 Ko)

Hello,

Essaie avec ceci : tu as oublié les guillemets à la fin de la formule pour Base_Capex

Avant :

=SIERREUR(INDIRECT(ADRESSE(
GRANDE.VALEUR(N(SIERREUR(--(DECALER(Base_Capex!$A$6:$A$285;;EQUIV("Invest "&Base!$C$16;Base_Capex!$6:$6;0)-1;;));0)>0)*LIGNE(Base_Capex!$A$6:$A$285);LIGNE()-3);10;4;;Base_Capex));""

Après :

=SIERREUR(INDIRECT(ADRESSE(
GRANDE.VALEUR(N(SIERREUR(--(DECALER(Base_Capex!$A$6:$A$285;;EQUIV("Invest "&Base!$C$16;Base_Capex!$6:$6;0)-1;;));0)>0)*LIGNE(Base_Capex!$A$6:$A$285);LIGNE()-3);10;4;;"Base_Capex"));"")

N'hésite pas si besoin d'informations

@+

OK, merci de m'avoir remonter cette erreur, sur le fichier test la correction ne fonctionnait pas parce-que j'ai du essayer d'enregistré avec Ctrl+Maj+Entrée.

J'ai supprimer et refais avec Entrée et cela fonctionne très bien. :)

Mais sur mon fichier principal non. J'ai surement une cellule qui me veut des misères...
En tout cas milles merci.

Hello,

La seule chose qui pourrait poser problèmes c'est :

image

- Soit le -3 : dans ta feuille de restitution on met la formule en E4 donc pour récupérer la position 1 on fait LIGNE()-3 pour rendre dynamique les plus grandes valeurs à récupérer. Donc à adapter si ce n'est pas dans la ligne 4 que vous mettez la formule au départ ;

- Le 10 permet d'aller récupérer dans la base la colonne J (10ème lettre de l'alphabet). Donc si la date n'est pas dans cette colonne il faut le modifier à cet endroit

@+

Bonjour,

Merci beaucoup pour cette explication.

Effectivement dans mon classeur de travail, je colle la formule en B36, donc j'ai modifié -3 en mois -35 et cela renvoi bien le résultat.

Par contre une chose m'étonne, c'est que la liste remontée en dans l'ordre inverse. Cela veut dire que je récupère en premier la valeur en bas de la feuille de recherche et quand j’étends la formule cela remonte jusqu’à la première trouvée. Pas très grave car j'ai ma liste complète sauf quelle est inversée.

Si tu as une explication je suis preneur.

En tout milles merci pour ton aide

Hey,

J'ai choisi l'option de facilité pour éviter à faire un SI. Voici la formule pour l'avoir dans l'ordre

=SIERREUR(INDEX(Base2!$J:$J;
PETITE.VALEUR(SI(
N(SIERREUR(--(DECALER(Base2!$A$6:$A$40;;EQUIV("Inv "&Base!$C$16;Base2!$6:$6;0)-1;;));0)>0)*LIGNE(Base2!$A$6:$A$40)=0;"";
N(SIERREUR(--(DECALER(Base2!$A$6:$A$40;;EQUIV("Inv "&Base!$C$16;Base2!$6:$6;0)-1;;));0)>0)*LIGNE(Base2!$A$6:$A$40));LIGNE()-3));"")

A mettre en E4 dans ton fichier test

@+

Merci beaucoup pour ton temps et tes réponses qui sont top

Tout fonctionne parfaitement sur le fichier test, comme sur mon fichier principal de travail.

Merci beaucoup et belle journée

Rechercher des sujets similaires à "evoluer formule recherche"