Problematique avec RechercheV complexe

Bonjour

J'ai besoin de votre aide pour finaliser ma rechercheV.

J'ai encore une erreur que je n'arrive pas à trouver et à résoudre.

Ci joint le fichier avec l'erreur

C'est une rechercheV qui se fait grâce au "numéro du lot".

Elle est dans l'onglet SAV en colonne L

Ci dessous la formule

=RECHERCHEV(INDIRECT(ADRESSE(LIGNE();EQUIV("Numéro du lot";$A$1:$O$1;0);4));'Stocks Disponibles'!A:T;EQUIV("Somme des stocks disponibles SAV";'Stocks Disponibles'!$A$1:$S$1;0);0)

Merci d'avance pour votre aide si vous avez une idée

Bonne journée

18classeur1.xlsm (11.98 Ko)

Bonjour,

1ère question : pour faire un

INDIRECT(ADRESSE(LIGNE();EQUIV("Numéro du lot";$A$1:$O$1;0);4))

qui donne juste l'adresse de la cellule K de la ligne, soit K2 !!??

Ensuite, tu fais une RECHERCHEV dans ton stock à partir de la colonne A qui contient le numéro de commande client

Une RECHERCHEV() recherche la valeur dans la 1ère colonne de la plage et pas ailleurs

A+

Bonjour

Je ne suis pas sur d'avoir bien bien compris le sens de la question?

Cependant, la colonne Numéro du lot peut varier, d'où cette ligne quii est censé lui permettre pour la ligne 2 d'aller chercher la valeur 77866

Est on d'accord la dessus?

Re,

La colonne peut varier en fonction de qui/quoi ?

Ensuite ton problème vient du fait que dans une feuille, ton numéro de lot est au format Standard

et dans le stock au format Texte, ce qui fait que numérique <> texte

A+

En fonction des differentes personnes qui utilisent l'ERP. Ce qui engendre que la colonne n'est pas toujours au meme endroit quand ils les extraient dans Excel mais je ne pense pas que l'erreur vienne de là, puisqu'il identifie bien la valeur comme étant la valeur recherchée

Re,

Non l'erreur ne vient pas de là (voir posts précédents) mais c'était par curiosité

Cependant, as tu une idée d'où peut provenir l'erreur stp?

8)


J'avais pas vu ta réponse

Donc on ne peut faire une rechercheV que que la colonne A

Re,

Non... RECHERCHEV () effectué sa recherche dans la 1ere colonne de la plage indiquée

À toi de changer cette plage

Ah d'accord ce qui signifie que je dois figer la plage de recherche quoiqu'il arrive...

bon ben je vais essayer de faire avec

Merci

Bonjour

J'ai réfléchi à ce que tu m'as dit.

La question est donc de savoir s'il est possible de désigner la première colonne de la plage de recherche par rapport à une étiquette de donnée. En l'occurence, dans mon cas, "Numéro du lot"

Sais tu si c'est possible?

Re,

Vraiment navré, je viens de voir que je ne t'avais pas mis la bonne formule

=RECHERCHEV(INDIRECT(ADRESSE(LIGNE();EQUIV("Numéro du lot";$A$1:$O$1;0);4));'Stocks Disponibles'!E:T;EQUIV("Somme des stocks disponibles SAV";'Stocks Disponibles'!$A$1:$S$1;0)-4;0)

Comme la plage de RECHERCHEV() doit commencer à partir de E (1ère colonne)

Il faut enlever 4 du numéro de colonne trouvée et contenant "Somme des stockes.."

A+

Bonjour Lecoc, BrunoM45

Je crois qu'il y a plus simple

=INDEX(MyGrid3;EQUIV(TEXTE(SAV!LC(-1);"0");MyGrid3[Numéro du lot];0);EQUIV(MyGrid3[[#En-têtes];[Somme des stocks disponibles SAV]];MyGrid3[#En-têtes];0))

J'explique :

puisque dans l'onglet "Stocks Disponibles" tu utilises un tableau "automatique" MyGrid3 (c'est le nom qu'Excel à donné automatiquement à ce tableau) tu peux te référer directement aux colonnes via les entêtes correspondantes - pas besoin donc de s'embêter avec INDIRECT et ADRESSE combinées et encore moins de faire des calculs de colonnes décalées

BrunoM45 a écrit :

Vraiment navré, je viens de voir que je ne t'avais pas mis la bonne formule Code: Tout sélectionner=RECHERCHEV(INDIRECT(ADRESSE(LIGNE();EQUIV("Numéro du lot";$A$1:$O$1;0);4));'Stocks Disponibles'!E:T;EQUIV("Somme des stocks disponibles SAV";'Stocks Disponibles'!$A$1:$S$1;0)-4;0)Comme la plage de RECHERCHEV() doit commencer à partir de E (1ère colonne)Il faut enlever 4 du numéro de colonne trouvée et contenant "Somme des stockes.."

!

de plus il faut savoir que RECHERCHEV recherche dans une matrice à partir (et seulement à partir) de la 1ere colonne de cette matrice alors que INDEX donne les coordonnées d'une cellule dans une matrice et combinée à EQUIV il devient possible de choisir une colonne quelconque !

= INDEX( laMatriceDeRecherche ; quelleLigne ; quelleColonne )
= EQUIV( valeurRecherchee ; tableauDeRecherche ; typeDeRecherche )

où typeDeRecherche peut prendre 1 pour inférieur à, 0 pour exact ou -1 pour supérieur à

en l'occurrence dans ton cas :

laMatriceDeRecherche = MyGrid3

qui est la formulation Excel pour désigner les données du tableau
quelleLigne = EQUIV( TEXTE( SAV!LC(-1) ; "0" ) ; MyGrid3[Numéro du lot] ; 0 )

où TEXTE( SAV!LC(-1) ; "0" ) permet de mettre au format texte le n° de lot - donc ce que l'on recherche (valeurDeRecherche)où MyGrid3[Numéro du lot] est pour Excel la colonne nommée ainsi - donc où chercher (tableauDeRecherche)où 0 indique la correspondance exacte !et

quelleColonne = EQUIV( MyGrid3[[#En-têtes];[Somme des stocks disponibles SAV]] ; MyGrid3[#En-têtes] ; 0 )

où MyGrid3[[#En-têtes];[Somme des stocks disponibles SAV]] est la formulation Excel pour la colonne

[Somme des stocks disponibles SAV] sur la ligne des [#En-têtes]où MyGrid3[#En-têtes] est la formulation Excel pour la ligne des entêtes

où 0 indique la correspondance exacte !

En espérant avoir été assez clair... Bonne modification !


(re)

D'ailleurs notre cher Raja avait eu la même idée que moi !

Raja a écrit :

Bonjour,

Essaye la formule suivante :

=INDEX(MyGrid3[Somme des stocks disponibles SAV];EQUIV(TEXTE(INDIRECT(ADRESSE(LIGNE();EQUIV("Numéro du lot";$A$1:$L$1;0);3));"@");MyGrid3[Numéro du lot];0))

Teste en déplaçant la colonne "Numéro du lot".

dans

https://forum.excel-pratique.com/post476424.html?hilit=index

Bonjour

Merci pour toutes ces infos, mais je suis sincerement désole, meme si je comprends bien le principe de la formule, j'ai beau essayé par tous les moyens, je n'arrive pas à l'appliquer.

J'aimerai bien comprendre le mecanisme plutot que de reproduire betement la formule et plutot que de l'ecrire en VBA, j'aimerai si vous etes d'accord que vous m'expliquiez comment on le transcris au niveau de la formule dans le tableur ou au moins que vous me disiez ce qui ne va pas

On est d'accord que dans Index

Matrice de Recherche = 'Stocks Disponibles'!A:W => Puisque c'est bien dans cette matrcie qu'on recherche la valeur

N° de Ligne:

N° Ligne:

Valeur cherchée: En tete de l'onglet SAV dans le tableau de recherche 'Stocks Disponibles'!A:W

Et la j'ai un #N/A => Cf PJ, je comprends pas!

Donc je vais pas plus loin pour la colonne puisque le n° de ligne ne marche pas

HELP PLEASE

Merci d'avance

Bonne journée

capture
11classeur2.xlsm (245.30 Ko)

J'ai persévéré et j'ai trouvé!

Merci à vous tous

L'indexation est au top!

bonne journée

Rechercher des sujets similaires à "problematique recherchev complexe"