RechercheV dernière valeur si plusieurs fois la mê

F

Francis38

Guest
Bonjour Le Forum,

Je viens chercher de l'aide sur ce forum qui m'a déjà dépanné à plusieurs reprises.
Avec la fonction RechercheV je souhaite rechercher la dernière valeur 'Utilisation' dans la colonne A qui est associée à une date dans la colone B. La valeur 'Utilisation' est présente à plusieurs reprises. Que je mettre VRAI ou FAUX dans la formule, le résultat (affiché sur une autre feuille) n'est pas celui que j'attends.
Colone A Colone B
Utilisation 26/10/04
Indisponible 27/10/04
Rectification 28/10/04
Disponible 29/10/04
Garnissage 10/10/05
Rectification 11/10/05
Disponible 12/10/05
Contrôle 13/10/05
Utilisation 22/10/05
Utilisation 23/10/05
Disponible 30/10/05
Contrôle 01/11/05
Par la suite je souhaiterais faire effectuer cette opération en AUTO à l'aide d'une macro. Donc par la même occasion si vous pouvez aussi me proposer une solution. Pour info je ne suis pas un pro de VBA (heureusement il y a le Forum), mais j'ai fait quelques trucs pas mal.
J'espère avoir été assez clair dans mon explication, car mon fichier Xls est assez important 747 Ko.
Je remercie par avance ceux qui pourront m'aider, mais je n'en doute pas, car ce site est extraordinnaire de génie.
Bonne soirée à tous.
Francis de Vif (38)
 

Modeste

XLDnaute Barbatruc
Re : RechercheV dernière valeur si plusieurs fois la mê

Re-bonjour,

Je confirme ce que j'ai écrit plus tôt (voir mon [Edit:]) ... la formule utilisée donnait la valeur la plus élevée

Celle-ci, en L11, devrait afficher la dernière valeur pour une référence identique, dans les lignes précédentes
Code:
=INDEX($M$1:$M$500;MAX(SI(D$2:D10=D11;LIGNE(D$2:D10))))
... à valider avec Ctrl+Shift+Enter et à tester soigneusement!

PS: j'évite, comme tu le vois, d'utiliser des formules matricielles sur des colonnes entières: ces formules sont "gourmandes" en ressources et temps de recalcul.

Mouaaarfff! ... presque pas en retard sur ce coup-là ... Salut Jocelyn :):)
 

jiandal

XLDnaute Nouveau
Re : RechercheV dernière valeur si plusieurs fois la mê

J'ai essayer et ça m'affiche le nom de la colonne "stock théoR " c'est bizard .

Par contre cette formule marche bien :
=INDEX($M$2:M10;MAX(SI((SUPPRESPACE($D$2:D10)=SUPPRESPACE(D11))*(LIGNE($M$2:M10)<LIGNE());LIGNE($M$2:M10)))-1)

Je veux juste connaitre les détailles de cette formule
 

Jocelyn

XLDnaute Barbatruc
Re : RechercheV dernière valeur si plusieurs fois la mê

re,

la formule :

Code:
=INDEX($M$2:M10;MAX(SI((SUPPRESPACE($D$2:D10)=SUPPRESPACE(D11))*(LIGNE($M$2:M10)<LIGNE());LIGNE($M$2:M10)))-1)

de façon générique index(plage ou il y a la valeur a renvoyer;numéro de ligne;numéro de colonne)

ici on a pas besoin de numéro de colonne car la plage n'a qu'une colonne

détermination de la plage ou il y a la valeur INDEX($M$2:M10;

ensuite détermination du numéro de ligne

la ligne ayant le numéro de ligne le plus élevé dans la plage ou il y a la valeur MAX(SI(......;LIGNE($M$2:M10)))-1 le -1 car on démarre en ligne 2

par contre ce max a des condition

1)(SUPPRESPACE($D$2:D10)=SUPPRESPACE(D11)) que la valeur de D11 soit égale a une valeur dans la plage $D$2:D10 ici le SUPPRESPACE() permet d'enlever d'éventuels espace placés avant ou après les valeur de la plage
2) (LIGNE($M$2:M10)<LIGNE())que le numéro de la ligne de $M$2:M10 soit inférieur a la ligne sur laquelle la formule est placée LIGNE()

voila j'espère avoir été clair sinon n'hésites pas
 

jiandal

XLDnaute Nouveau
Gestion de stock

Bonjour

je sollicite votre aide pour mettre en place un fichier exel qui gère les stock dans l'entreprise ou je passe mon stage celle ci fabrique de la limonade et de la bières

la situation est la suivante : voila je dois gérer le stock sur 2 site : site de fabrication et site d'entreposage

j'ai 40 référence de produits fini c à d : étiquetés

j'ai des produit non étiquetés que je dois gérer en stock aussi

j'ai de la matière première sur les 2 site donc un 3ème stock : Mat 1er


j'avais dèja mis en place un ensemble de fichier exel pour chaque type de produit mais ça devient lourd à manipuler chaque jour et faire la saisi des entrées et sorties

je cherche à simplifier cette tache au maximum

donc j'ai créer un fichier exel pour : produit fini / produit semi fini / mat 1er avec les entrée et sortie des différents produits suivant ainsi le niveau de stock

je voudrais maintenant faire un tableau croisé dynamique qui me résume tout et à chaque moment :

par exemple : j'ai une commande de limonade 75 cl à la mirabelle pour le client x : je voudrais rentrer cette commande et sortir en un clic le stock de matière 1er qui rentre en fabrication , le stock de produit brut non étiqueté ( limonade mirabelle) et le stock de produit étiqueté ( limo mirabelle client x )

j'espère que c'est plus au moins claire

Merci Pour votre attention
 

jiandal

XLDnaute Nouveau
Re : RechercheV dernière valeur si plusieurs fois la mê

coucou tout le monde ,

j'ai un petit nouveau problème toujours pour rechercher la valeur la plus récente dans une autre feuille exel correspondante à un code produit

sur le fichier en pièces jointe vous arriverez à voir mieux

j'ai fais le suivi de mon stock sur feuille : suivi ensuite j'ai ajouter une feuille : commande disponibilité où je voudrais taper une commande de produit x ce qui va me générer un code de produit x et à partir de ce code retrouver la stock disponible le plus récent afficher sur la feuille : suivi

j'espère que vous pourrez m'aider

merci d'avance
 

Pièces jointes

  • Gestion Stock.xls
    135 KB · Affichages: 88
  • Gestion Stock.xls
    135 KB · Affichages: 71
  • Gestion Stock.xls
    135 KB · Affichages: 85

Gadjo

XLDnaute Nouveau
Re : RechercheV dernière valeur si plusieurs fois la mê

Bonjour le forum,

J'aurais une question sur les possibilités que peut offrir la fonction RECHERCHEV.

Je voulais savoir si il serait possible de "déterminer" à quel numéro d'apparation de la valeur cherchée on souhaite avoir notre valeur.. Ok c'est dur à expliquer, je vais essayer de le décrire dans un exemple :

Colonne A Colonne B

ISOPENTANE 0.06
2,2-DIMETHYLBUTANE 1.85
2,3-DIMETHYLBUTANE ...
2-METHYLPENTANE ...
3-METHYLPENTANE
2,2-DIMETHYLPENTANE
2,4-DIMETHYLPENTANE
2,2,3-TRIMETHYLBUTANE
3,3-DIMETHYLPENTANE
2-METHYLHEXANE
2,3-DIMETHYLPENTANE
....


La recherche se fait dans la colonne de gauche et c'est là que vient le soucis, c'est un fichier de résultat sur des analyses labo et on y retrouve des lignes avec des consitituants "inconnu" pour chaques consitituants non-identifié. Je ne peut donc pas juste donner une ligne et une colonne pour avoir ma valeur en colonne B pour un consitituant donné, ce qui aurait été cool. L'objectif ce serait que par exemple pour le 3-METHYLPENTANE, j'ai la valeur de la colonne B MAIS seulement lors de sa 3ème apparition (qui n'est pas sa dernière non plus) dans la colonne A.

La solution serait soit de trouver un moyen de détecter les lignes avec "inconnu", j'aurais alors toujours le même nombre de ligne pour aller à ma valeur. Plus besoin de formule.
Soit si c'est possible, avoir une recherche vraiment poussée sur la colonne A.

Bon courage et merci à ceux qui s'en sentent capable :)

PS : je me rend compte que je n'ai pas réussit à faire des colonnes aussi belles que je pensais :'(

La colonne A est donnée par les noms de molécules et la B par les valeurs numériques. (Toutes les colonnes sont en format texte)
 
Dernière édition:

Modeste

XLDnaute Barbatruc
Re : RechercheV dernière valeur si plusieurs fois la mê

Bonjour Gadjo,

Je ne suis pas certain du tout de pouvoir apporter une ébauche de réponse ... Par contre je suis certain qu'un petit extrait de fichier (avec juste ces deux colonnes et un nombre de lignes limité) aiderait à comprendre ta demande :D
Le "must" serait, dans ledit fichier, l'un ou l'autre exemple de résultat attendu (en lien avec tes explications).
 

Gadjo

XLDnaute Nouveau
Re : RechercheV dernière valeur si plusieurs fois la mê

Bonjour Modeste et merci pour cette réponse des plus rapide !

Il n'y a pas de problème, je peut te donner un fichier de données labo. Le fichier qui utilise la formule est beacoup trop gros (plusieurs Mo), j'espère que ça ira. Une macro fait juste un copier-coller du petit fichier dans une plage du gros fichier (j'ai vérifier elle prend bien tout sans décalage et juste un coller-valeurs).

Je t'ai mis un fond jaune sur l'endroit où le nombre de ligne peut-être amené à varier suivant le nombre "d'inconnu" trouvé durant l'analyse.
Et en vert un exemple de ligne sur laquelle j'aimerais faire s'arrêter la RECHERCHEV.
Sinon je te conseil de mettre le zoom à 70%, ça simplifie beaucoup la lecture de la page.

Merci pour l'attention prise à mon problème.
 

Pièces jointes

  • RR21-28102008-1.txt.xlsx
    24.9 KB · Affichages: 23

Modeste

XLDnaute Barbatruc
Re : RechercheV dernière valeur si plusieurs fois la mê

Re,

La seconde réponse est hélas beaucoup moins rapide que la première (mais j'avais prévenu ;))

Je ne sais pas si d'autres y voient plus clair ... Je ne comprends pas le lien entre la plage en jaune et les occurences de "NAPHTENE" colorées en vert!? Pourquoi celle en A369 est-elle ignorée? Idem pour celles en A441, A454, A472 et A485?

Les "<INCONNU>" seront uniquement en colonne D? Ils seront toujours tous rassemblés en un seul "bloc"? (si oui et qu'il faut "détecter" la plage où ils sont trouvés, DECALER devrait convenir). Ça donnerait quelque chosse comme
Code:
=DECALER($D$1;EQUIV("<INCONNU>";$D$1:$D$5000;0);;NB.SI($D$1:$D$5000;"=<INCONNU>"))

Les exemples de ton premier message, on les retrouve où dans le fichier? (même si ce ne sont pas les mêmes valeurs)

Si ça peut t'éclairer, trouver la 3e occurence de NAPHTENE en colonne A et renvoyer le contenu de la cellule juste à droite pourrait se faire avec
Code:
=INDEX(B1:B500;PETITE.VALEUR(SI(A1:A500="NAPHTENE";LIGNE(A1:A500));3))
à valider avec Ctrl+Shift+Enter
 

Gadjo

XLDnaute Nouveau
Re : RechercheV dernière valeur si plusieurs fois la mê

Re,

Si tu préfères ce fichier est comme dans les experts miami, on met un tube à essai avec un produit dedans et l'ordi fait le reste. Ce fichier c'est donc l'ordinateur qui le fabrique, donc les colonnes seront toujours respectée, la partie en jaune c'est celle que j'aimerais "ignorer" dans ma formule car elle ne sont pas du tout exploitable.

Sinon il est vrai que j'ai manqué de précision sur l'objectif de mon travaill, les cellules NAPHTENE ignorées que tu as mentionnés sont en fait des résultats en %volumique ou molaire (c'est marqué quelques lignes au-dessus). On souhaite plutôt parler en %massique, d'où la selectivité de certaines lignes en particulier.

Sinon le rapport avec mon premier message est avec ce qui se trouve vers le haut du fichier. Je cherche une formule générale que je commprenne pour l'adapter à plusieurs situations. J'ai pensé que avec l'exemple du fichier ce serait plus clair désolé d'avoir changer d'exemple sans prévenir :x

Merci pour ces solutions, je vais les essayer de suite. Mais tu pourrais m'aider à commprendre ce qu'elle font exactement ?

Pour la première fonction j'ai du mal à comprendre ce qui va être décalé et où :/

Pour la deuxième je ne comprend pas le PETITE.VALEUR, est-ce qu'il renvois le nombre de ligne occupé par "NAPHTENE" en colonne A avec le "3" à la fin d'INDEX pour prendre la troisième ligne où il apparait ?

PS : Je rajoute que la plage jaune a un nombre de ligne qui dépend du nombre de consitituant "INCONNU" trouvé pendant l'analyse, ça varie donc d'une analyse à l'autre et ce n'est pas une variable dont je peux avoir le contrôle.
 
Dernière édition:

Modeste

XLDnaute Barbatruc
Re : RechercheV dernière valeur si plusieurs fois la mê

Re²,

Je m'étais dit qu'en attendant un peu quelqu'un d'autre passerait par là qui comprendrait mieux que moi ... ça ne se bouscule guère au portillon. Deux possibilités: peu de gens sont passés ou ce n'est pas plus évident pour eux?

Mon problème est que je ne sais même pas si les formules proposées vont te servir!
Pour la première fonction j'ai du mal à comprendre ce qui va être décalé et où :/
Pour celle-ci, en réalité elle redéfinit la référence à une plage de cellules. Dans le cas présent, la plage concernée est D331 à D354 (c'est à dire, au départ de D1, on "décale" la sélection de 330 lignes vers le bas et on "l'étend" sur 24 lignes)


Pour la deuxième "PETITE.VALEUR(SI(A1:A500="NAPHTENE";LIGNE(A1:A500));3)" dresse une liste des n° de ligne où figure NAPHTENE et renvoie le 3e n° de cette liste (soit, ici, la ligne 423)


Je rajoute que la plage jaune a un nombre de ligne qui dépend du nombre de consitituant "INCONNU" trouvé pendant l'analyse, ça varie donc d'une analyse à l'autre et ce n'est pas une variable dont je peux avoir le contrôle.
Voir la première explication ci-dessus (c'est bien la seule partie que je crois avoir comprise!) :eek:
 

Gadjo

XLDnaute Nouveau
Re : RechercheV dernière valeur si plusieurs fois la mê

Re (Désolé pour la réponse un peu lente),

Un grand merci à toi Modeste, je pense effectivement que ta deuxième formule soit la solution ! Je vais me lancer dans des tests afin de vérifier ça, je te tiendrais au courrant de l'avancée (demain je pense, ce soir je suis un peu pris).

Encore une fois merci mon sauveur :)
 

Gadjo

XLDnaute Nouveau
Re : RechercheV dernière valeur si plusieurs fois la mê

Une nouvelle journée et de nouveaux problèmes..

Bonjour à tous,

J'ai testé la deuxième formule qui avait l'air bonne Modeste, je pense l'avoir bien adapté mais les résultats donnés ne correspondent pas à ce que je voudrait. Je ne sais pas si je m'y prend mal dans l'application de la formule que tu m'as présenté, ça donne ceci sur mon "gros" fichier :

Code:
 =INDEX(J75:J585;PETITE.VALEUR(SI(I75:I585="NAPHTENE";LIGNE(I75:I585));2))

En validant bien sous forme de matrice (Ctrl + Shift + Entrée).

Les numéros de lignes et de colonnes sont un peu décalés mais correspondent à l'endroit où est copié le tableau d'origine. Je m'explique, la référence "I75" correspond à "A1" dans le fichier que j'ai joint, après le tableau du fichier d'origine n'est pas du tout modifié donc ill ne devrait pas y avoir de problème..

Apparemment la valeur renvoyée est celle de la ligne du dessus (qui correspondrait à "ISO.PARAFINNE" comme ligne dans la colonne "I").

Edit : J'ai refais divers tests, et je me rend compte qu'en plus de me donner la valeur avec une ligne de décalage, la formule ne détecte pas toutes les cellules marquées "NAPHTENE". La formule fonctionne dans la fichier d'origine et après un copier-coller valeur ça ne fonctionne plus.. Ceci pourrait-il être lié ? :(
 
Dernière édition:

Modeste

XLDnaute Barbatruc
Re : RechercheV dernière valeur si plusieurs fois la mê

Bonjour Gadjo,

Le problème de ta formule est que si NAPHTENE est trouvé à la ligne 76, par exemple, INDEX(J75:J585... va effectivement provoquer un sérieux décalage, puisque tu lui demandes de chercher la 76e ligne de la plage qui commence à la 75e
... tu me suis?

Donc, soit au début de ta formule, tu écris INDEX(J1:J585..., soit il faut soustraire 74 au n° de ligne obtenu avec LIGNE(I75:I585)
La première solution étant sans doute la plus simple!?
 

Gadjo

XLDnaute Nouveau
Re : RechercheV dernière valeur si plusieurs fois la mê

Bonjour Modeste,
toujours le même à l'appel. Un grand merci à toi et à tes lumières.

J'ai bien compris, merci pour l'explication. Je n'avais pas bien saisis les subtilités de la formule et ça fonctionne parfaitement maintenant !

La première formule est sans doute plus simple (je ne l'ai pas testée hônnetement) mais ma tutrice m'a appris que l'ordre d'arrivée des valeurs peut changer. Il va donc faloire que je rajoute une condition à ceci pour être sûre de prendre la bonne ligne.

Détails : J'avais expliqué précédement qu'il me fallait selectionner un %poids et qu'il y avait aussi des résultats en %molaire et %volumique. L'ordre dans lequel sont rangés ses trois petits tableaux peut être différent d'un fichier à l'autre (pour une raison qui nous est totalement inconnu encore). Je vais essayer de mettre une condition pour vérifier ce qui est inscrit dans la cellule voulu qui elle sera toujours 9 lignes au-dessus de celle du dit "NAPHTENE" et 5 colonnes à gauche.

Je te dirais jamais assez merci pour l'attention que tu as porté à ma requête Modeste, mais encore merci beaucoup pour tout !

Je vous tiens au courrant dès que j'ai trouvé la formule finale.
 

Discussions similaires

Statistiques des forums

Discussions
315 135
Messages
2 116 619
Membres
112 815
dernier inscrit
Pierre43