OVH Cloud OVH Cloud

Position des éléments d'une liste répondant à un critère.

4 réponses
Avatar
Indigo
Bonjour à tous.

J'ai une feuille Historiques sur laquelle j'ai un tableau qui comporte sur
chacune des lignes 3 saisie : la Date, le nom du Fruit, sa Quantité.

PIERROT
Date Fruit Quantité
jeudi 1 septembre 2005
jeudi 15 septembre 2005 Orange 12
jeudi 15 septembre 2005 Poire 13
mardi 27 septembre 2005 Citron 10
lundi 3 octobre 2005 Orange 15
lundi 3 octobre 2005 Orange 25
lundi 3 octobre 2005 Poire 12
lundi 3 octobre 2005 Mandarine 12
jeudi 6 octobre 2005 Orange 5
vendredi 7 octobre 2005 Mandarine 7
mercredi 23 novembre 2005 Poire 12
mardi 6 décembre 2005 Citron 13
mercredi 7 décembre 2005 Citron 14
mercredi 7 décembre 2005 Citron 13
mercredi 7 décembre 2005 Orange 18
mercredi 7 décembre 2005 Poire 45
mercredi 7 décembre 2005 Pomme 10
mercredi 7 décembre 2005 Pomme 11
mercredi 7 décembre 2005 Poire 8
mercredi 7 décembre 2005 Mandarine 7
jeudi 8 décembre 2005 Orange 6
jeudi 8 décembre 2005 Citron 5
vendredi 9 décembre 2005 Orange 3
vendredi 9 décembre 2005 Fraise 25
mercredi 14 décembre 2005 Framboise 20
mercredi 14 décembre 2005 Fraise 20
jeudi 15 décembre 2005 Orange 45
vendredi 16 décembre 2005 Pomme 12
vendredi 23 décembre 2005 Pomme 14

J’ai appelé
- Date la zone de toutes les transactions possibles de A3:A3000.
- Titre la zone B3:B3000 et
- Volume l azone C3:C3000.

Je souhaire obtenir sur une autre feuille MOUVEMENT la position de toutes
positions d'un fruit que je vais taper dans la cellule 1. Si je tape par
exemple Citron :

Citron
1° position = 4
Dernière position = 22
Poistion
4
12
13
14
22

Sous CALC j'utilise la fonction PETITE.VALEUR() pour obtenir le numéro
d'ordre de chaque élément dans la liste initale
=PETITE.VALEUR((Titre=A$1)*LIGNE(Titre);(LIGNE()-LIGNE(A$214)+1)+NB.SI(Titre;"<>"&CELLULE("CONTENTS";A$1)&"")+NB.VIDE(Titre))

Je n'arrive pas à obtenir la même chose sous EXCEL. Comment faire ?

Merci pour votre aide.

4 réponses

Avatar
Daniel
Bonjour.
En A2 :
=EQUIV(A1;titre;0)
ensuite en A3 à recopier vers le bas :
=EQUIV($A$1;DECALER(titre;A2;0);0)+A2
La dernière position s'obtient avec :
=MAX(A2:A3000)
Cordialement.
Daniel
"Indigo" a écrit dans le message de news:

Bonjour à tous.

J'ai une feuille Historiques sur laquelle j'ai un tableau qui comporte sur
chacune des lignes 3 saisie : la Date, le nom du Fruit, sa Quantité.

PIERROT
Date Fruit Quantité
jeudi 1 septembre 2005
jeudi 15 septembre 2005 Orange 12
jeudi 15 septembre 2005 Poire 13
mardi 27 septembre 2005 Citron 10
lundi 3 octobre 2005 Orange 15
lundi 3 octobre 2005 Orange 25
lundi 3 octobre 2005 Poire 12
lundi 3 octobre 2005 Mandarine 12
jeudi 6 octobre 2005 Orange 5
vendredi 7 octobre 2005 Mandarine 7
mercredi 23 novembre 2005 Poire 12
mardi 6 décembre 2005 Citron 13
mercredi 7 décembre 2005 Citron 14
mercredi 7 décembre 2005 Citron 13
mercredi 7 décembre 2005 Orange 18
mercredi 7 décembre 2005 Poire 45
mercredi 7 décembre 2005 Pomme 10
mercredi 7 décembre 2005 Pomme 11
mercredi 7 décembre 2005 Poire 8
mercredi 7 décembre 2005 Mandarine 7
jeudi 8 décembre 2005 Orange 6
jeudi 8 décembre 2005 Citron 5
vendredi 9 décembre 2005 Orange 3
vendredi 9 décembre 2005 Fraise 25
mercredi 14 décembre 2005 Framboise 20
mercredi 14 décembre 2005 Fraise 20
jeudi 15 décembre 2005 Orange 45
vendredi 16 décembre 2005 Pomme 12
vendredi 23 décembre 2005 Pomme 14

J'ai appelé
- Date la zone de toutes les transactions possibles de A3:A3000.
- Titre la zone B3:B3000 et
- Volume l azone C3:C3000.

Je souhaire obtenir sur une autre feuille MOUVEMENT la position de toutes
positions d'un fruit que je vais taper dans la cellule 1. Si je tape par
exemple Citron :

Citron
1° position = 4
Dernière position = 22
Poistion
4
12
13
14
22

Sous CALC j'utilise la fonction PETITE.VALEUR() pour obtenir le numéro
d'ordre de chaque élément dans la liste initale.
=PETITE.VALEUR((Titre=A$1)*LIGNE(Titre);(LIGNE()-LIGNE(A$214)+1)+NB.SI(Titre;"<>"&CELLULE("CONTENTS";A$1)&"")+NB.VIDE(Titre))

Je n'arrive pas à obtenir la même chose sous EXCEL. Comment faire ?

Merci pour votre aide.



Avatar
Indigo
C'est excellent Daniel. Merci à toi.

Il ne me reste plus qu'à virer les #N/A disgracieux quan don déborde et ce
sera alors parfait.
Avatar
JB
En matriciel:

=GRANDE.VALEUR((champ="citron")*LIGNE(champ);LIGNE(INDIRECT("1:"&LIGNES (champ))))

JB


Bonjour à tous.

J'ai une feuille Historiques sur laquelle j'ai un tableau qui comporte sur
chacune des lignes 3 saisie : la Date, le nom du Fruit, sa Quantité.

PIERROT
Date Fruit Quantité
jeudi 1 septembre 2005
jeudi 15 septembre 2005 Orange 12
jeudi 15 septembre 2005 Poire 13
mardi 27 septembre 2005 Citron 10
lundi 3 octobre 2005 Orange 15
lundi 3 octobre 2005 Orange 25
lundi 3 octobre 2005 Poire 12
lundi 3 octobre 2005 Mandarine 12
jeudi 6 octobre 2005 Orange 5
vendredi 7 octobre 2005 Mandarine 7
mercredi 23 novembre 2005 Poire 12
mardi 6 décembre 2005 Citron 13
mercredi 7 décembre 2005 Citron 14
mercredi 7 décembre 2005 Citron 13
mercredi 7 décembre 2005 Orange 18
mercredi 7 décembre 2005 Poire 45
mercredi 7 décembre 2005 Pomme 10
mercredi 7 décembre 2005 Pomme 11
mercredi 7 décembre 2005 Poire 8
mercredi 7 décembre 2005 Mandarine 7
jeudi 8 décembre 2005 Orange 6
jeudi 8 décembre 2005 Citron 5
vendredi 9 décembre 2005 Orange 3
vendredi 9 décembre 2005 Fraise 25
mercredi 14 décembre 2005 Framboise 20
mercredi 14 décembre 2005 Fraise 20
jeudi 15 décembre 2005 Orange 45
vendredi 16 décembre 2005 Pomme 12
vendredi 23 décembre 2005 Pomme 14

J'ai appelé
- Date la zone de toutes les transactions possibles de A3:A3000.
- Titre la zone B3:B3000 et
- Volume l azone C3:C3000.

Je souhaire obtenir sur une autre feuille MOUVEMENT la position de toutes
positions d'un fruit que je vais taper dans la cellule 1. Si je tape par
exemple Citron :

Citron
1° position = 4
Dernière position = 22
Poistion
4
12
13
14
22

Sous CALC j'utilise la fonction PETITE.VALEUR() pour obtenir le numéro
d'ordre de chaque élément dans la liste initale.
=PETITE.VALEUR((Titre=A$1)*LIGNE(Titre);(LIGNE()-LIGNE(A$214)+1)+NB.S I(Titre;"<>"&CELLULE("CONTENTS";A$1)&"")+NB.VIDE(Titre))

Je n'arrive pas à obtenir la même chose sous EXCEL. Comment faire ?

Merci pour votre aide.


Avatar
Indigo

En matriciel:

=GRANDE.VALEUR((champ="citron")*LIGNE(champ);LIGNE(INDIRECT("1:"&LIGNES(champ))))


Merci à toi JB.

Je l'avais effectivement au départ en matriciel. Je n'ai toujours pas
compris où pêche la formule que j'ai donné.

Dans ce cas particulier la réponse de Daniel est plus adaptée puisqu'on peut
modifier la "matrice" au fur et à mesure des besoins par simple recopie de la
ligne du dessus. J'aimerais cependant bien comprendre pourquoi ma formule
initiale issue de Calc ne fonctionne pas.