Excel - formule de remplacement à recherchev
Résolu
dinin70
Messages postés
18
Date d'inscription
Statut
Membre
Dernière intervention
-
dinin70 Messages postés 18 Date d'inscription Statut Membre Dernière intervention -
dinin70 Messages postés 18 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'aimerais bien vous demander de m'aider à construire une formule dans Excel. Je vous explique ce que je recherche.
Je cherche une sorte de vlookup / match / offset mais aucun ne fonctionne parce que la "lookup value" <>0 n'existe pas. En détail.
Supposons ces données
.............A...........................B.......................C
.......Quantité restante......Prix d'achat.........Date valeur
1..........10.........................100................01.01.2012
2..........20.........................110................03.01.2012
3..........15.........................105................10.01.2012
Ce que j'aimerais serait une formule qui me dise en somme: "montre moi le prix d'achat de la première ligne dont la valeur "quantité restante" ne soit pas égale à 0.
Dans ce cas ci il me montrerait un prix d'achat de 100 vu qu'il me reste en Quantité restante 10 contrats de la première ligne.
Si je vends 15 contrats je vais donc liquider les 10 pemières positions achetées à 100 et 5 autres positions achetées à 110 le 3 janvier, mon tableau sera alors:
.............A...........................B.......................C
.......Quantité restante......Prix d'achat.........Date valeur
1..........0...........................100................01.01.2012
2..........15.........................110................03.01.2012
3..........15.........................105................10.01.2012
La formule que je cherche me montrera un prix d'achat 110: elle regardera dans colonne "quantité restante", voit que pour la première ligne la valeur est à 0 donc ne me montrera pas un prix d'achat à 100. La formule descendra et vu que dans la deuxième ligne il y a bien une quantité restante différente de 0, elle me montrera "110".
Pour visualiser ce dont j'ai besoin, mon problème serait résolu directement si la formule suivante était reconnue dans Excel: vlookup/recherchev (<>0;A:B;2;FALSE)
Mais <>0 n'existe pas. J'ai donc besoin d'une formule de remplacement. J'ai tout essayé avec des match et des offset mais ça ne fonctionne pas...
Pourriez-vous m'aider s'il vous plait?
Merci d'avance.
J'aimerais bien vous demander de m'aider à construire une formule dans Excel. Je vous explique ce que je recherche.
Je cherche une sorte de vlookup / match / offset mais aucun ne fonctionne parce que la "lookup value" <>0 n'existe pas. En détail.
Supposons ces données
.............A...........................B.......................C
.......Quantité restante......Prix d'achat.........Date valeur
1..........10.........................100................01.01.2012
2..........20.........................110................03.01.2012
3..........15.........................105................10.01.2012
Ce que j'aimerais serait une formule qui me dise en somme: "montre moi le prix d'achat de la première ligne dont la valeur "quantité restante" ne soit pas égale à 0.
Dans ce cas ci il me montrerait un prix d'achat de 100 vu qu'il me reste en Quantité restante 10 contrats de la première ligne.
Si je vends 15 contrats je vais donc liquider les 10 pemières positions achetées à 100 et 5 autres positions achetées à 110 le 3 janvier, mon tableau sera alors:
.............A...........................B.......................C
.......Quantité restante......Prix d'achat.........Date valeur
1..........0...........................100................01.01.2012
2..........15.........................110................03.01.2012
3..........15.........................105................10.01.2012
La formule que je cherche me montrera un prix d'achat 110: elle regardera dans colonne "quantité restante", voit que pour la première ligne la valeur est à 0 donc ne me montrera pas un prix d'achat à 100. La formule descendra et vu que dans la deuxième ligne il y a bien une quantité restante différente de 0, elle me montrera "110".
Pour visualiser ce dont j'ai besoin, mon problème serait résolu directement si la formule suivante était reconnue dans Excel: vlookup/recherchev (<>0;A:B;2;FALSE)
Mais <>0 n'existe pas. J'ai donc besoin d'une formule de remplacement. J'ai tout essayé avec des match et des offset mais ça ne fonctionne pas...
Pourriez-vous m'aider s'il vous plait?
Merci d'avance.
A voir également:
- Excel - formule de remplacement à recherchev
- Remplacement coco - Accueil - Réseaux sociaux
- Formule si et excel - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Coco.fr remplacement - Accueil - Réseaux sociaux
- Formule somme excel colonne - Guide
4 réponses
Bonjour
ligne 1: étiquette reste, prix
=INDEX(B:B;MIN((SI(A2:A8<>0;LIGNE(A2:A8)))))
Formule matricielle à valider par « ctrl+maj+entrée » (et non directement par « entrée »), le curseur clignotant dans la barre de formule; Excel encadre alors automatiquement la formule par des {}
ligne 1: étiquette reste, prix
=INDEX(B:B;MIN((SI(A2:A8<>0;LIGNE(A2:A8)))))
Formule matricielle à valider par « ctrl+maj+entrée » (et non directement par « entrée »), le curseur clignotant dans la barre de formule; Excel encadre alors automatiquement la formule par des {}
Le "SI" fonctionne correctement... C'est INDEX qui rate, pourtant je ne vois pas pourquoi: dans "ligne" de la formule index il a bien la ligne correspondant à la première ligne sans une valeur de 0. Bref, le SI montre bien le numero de la ligne avec valeur <>0, mais insérée dans INDEX ça met REF...
Je suppose en effet... Etant donné que chez moi le INDEX, pour une raison méconnue, ne fonctionne pas, j'ai essayé avec Offset, ce qui fonctionne très bien!
Merci beaucoup pour ta solution! Sans toi je n'aurais jamais connu cette formule avec le MIN((SI.
Si quelqu'un a le même problème que moi avec l'INDEX, voici la formule en Anglais;
=OFFSET(B1;MIN((SI(A2:A8<>0;LIGNE(A2:A8))))-ROW(B1);0)
Merci beaucoup pour ta solution! Sans toi je n'aurais jamais connu cette formule avec le MIN((SI.
Si quelqu'un a le même problème que moi avec l'INDEX, voici la formule en Anglais;
=OFFSET(B1;MIN((SI(A2:A8<>0;LIGNE(A2:A8))))-ROW(B1);0)
En effet c'est ROW et IF et non LIGNE et SI. J'avais copy/paste la formule MIN((SI de ton post!
=OFFSET(B1;MIN((IF(A2:A8<>0;ROW(A2:A8))))-ROW(B1);0)
Après pour le point virgule c'est mon Excel qui est comme ça, chez certains c'est une virgule qui sépare les fonctions dans une formule chez d'autres (dont moi) c'est un point-virgule. Peut-être ça provient du décimal et milliers, en Europe c'est 1.000,10, sur mon ordi anglophone c'est 1,000.10 qui pourrait avoir une incidence sur les formules. Bref! Ce qui compte c'est que ça fonctionne :))
=OFFSET(B1;MIN((IF(A2:A8<>0;ROW(A2:A8))))-ROW(B1);0)
Après pour le point virgule c'est mon Excel qui est comme ça, chez certains c'est une virgule qui sépare les fonctions dans une formule chez d'autres (dont moi) c'est un point-virgule. Peut-être ça provient du décimal et milliers, en Europe c'est 1.000,10, sur mon ordi anglophone c'est 1,000.10 qui pourrait avoir une incidence sur les formules. Bref! Ce qui compte c'est que ça fonctionne :))