Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

recherche valeur d'un filtre

13 réponses
Avatar
David 02
bonjour à tous

Je recherche une formule qui me permettrai de rechercher la première valeur
d'une cellule d'un filtre.

Ex : A1 à C1 : les entetes avec filtre automatique
B1 à C300 : Les valeurs

En E1 : la valeur de la 1ere cellule de la colonne B après avoir fait un
filtre sur cette colonne

merci de votre aide

10 réponses

1 2
Avatar
AV
La colonne B est nommée - le tableau peut-être déplacé

Matricielle (validation par Ctrl+maj+entrée)
=INDIRECT(ADRESSE(MIN(SI(SOUS.TOTAL(3;DECALER(colB;LIGNE(colB)-MIN(LIGNE(colB));
;1));LIGNE(colB);""));COLONNE(colB)))

AV
Avatar
David 02
Bonjour et merci alain

je vois ce que je peut faire avec cette formule

salutations

"AV" a écrit dans le message de
news:
La colonne B est nommée - le tableau peut-être déplacé

Matricielle (validation par Ctrl+maj+entrée)

=INDIRECT(ADRESSE(MIN(SI(SOUS.TOTAL(3;DECALER(colB;LIGNE(colB)-MIN(LIGNE(col

B));
;1));LIGNE(colB);""));COLONNE(colB)))

AV




Avatar
David 02
Après essais, cette formule me convient tout a fait mise à part :

quand le filtre est sur "tous" cette formule fait le sous-total sur la
première ligne.

y a t'il moyen de modifier celle ci ?

salutations


"AV" a écrit dans le message de
news:
La colonne B est nommée - le tableau peut-être déplacé

Matricielle (validation par Ctrl+maj+entrée)

=INDIRECT(ADRESSE(MIN(SI(SOUS.TOTAL(3;DECALER(colB;LIGNE(colB)-MIN(LIGNE(col

B));
;1));LIGNE(colB);""));COLONNE(colB)))

AV




Avatar
AV
quand le filtre est sur "tous" cette formule fait le sous-total sur la
première ligne.


Reprenons donc et.... simplifions (?) :
Renvoyer la 1° valeur de la plage B2:B20 (étiquette en B1) si celle-ci est
filtrée, sinon renvoyer vide :
Une soluce matricielle :

=SI(MIN(1*(SOUS.TOTAL(9;DECALER(B2:B20;LIGNE(INDIRECT("1:20"))-1;;1))>0))=0;INDE
X(B2:B20;EQUIV(1;1*(SOUS.TOTAL(9;DECALER(B2:B20;LIGNE(INDIRECT("1:20"))-1;;1))>0
);0));"")

AV

Avatar
David 02
bonjour et re merci alain

cela me fait une erreur N/A

pour mon cas : l'entete est en Q3 (fusionner de Q3 à T3) et les valeurs de
Q4 à T74

j'ai donc modifié comme ceci (en matriciel) :

{=SI(MIN(1*(SOUS.TOTAL(9;DECALER(Q4:T74;LIGNE(INDIRECT("1:74"))-1;;1))>0))=0
;INDEX(Q4:T74;EQUIV(1;1*(SOUS.TOTAL(9;DECALER(Q4:T74;LIGNE(INDIRECT("1:74"))
-1;;1))>0);0));"")}

mais cela ne fonctionne pas

Merci de ton aide

salutations.
David

"AV" a écrit dans le message de
news:%
quand le filtre est sur "tous" cette formule fait le sous-total sur la
première ligne.


Reprenons donc et.... simplifions (?) :
Renvoyer la 1° valeur de la plage B2:B20 (étiquette en B1) si celle-ci est
filtrée, sinon renvoyer vide :
Une soluce matricielle :


=SI(MIN(1*(SOUS.TOTAL(9;DECALER(B2:B20;LIGNE(INDIRECT("1:20"))-1;;1))>0))=0;

INDE

X(B2:B20;EQUIV(1;1*(SOUS.TOTAL(9;DECALER(B2:B20;LIGNE(INDIRECT("1:20"))-1;;1

))>0
);0));"")

AV





Avatar
AV
pour mon cas : l'entete est en Q3
C'est pas conseillé !

Une BD bien organisée a ses étiquettes de colonnes en ligne 1

(fusionner de Q3 à T3)
C'es pas conseillé non plus !

Mieux vaut le format "centré sur plusieurs colonnes"

Avec ta disposition (matricielle) :
=SI(MIN(1*(SOUS.TOTAL(9;DECALER(Q4:Q74;LIGNE(INDIRECT("1:70"))-1;;1))>0))=0;INDE
X(Q4:Q74;EQUIV(1;1*(SOUS.TOTAL(9;DECALER(Q4:Q74;LIGNE(INDIRECT("1:70"))-1;;1))>0
);0));"")

AV

Avatar
David 02
Bonjour alain

Excuse pour ce retard de réponse.

Avec cette formule ci-dessous, toujours la meme erreur. Je pense que
celle-ci est faite pour des valeurs numérique
alors que mes valeurs sont du texte.

Merci de ton aide
salutations

De: "AV"
Objet: Re: recherche valeur d'un filtre
Date: dimanche 23 novembre 2003 17:39

Avec ta disposition (matricielle) :
=SI(MIN(1*(SOUS.TOTAL(9;DECALER(Q4:Q74;LIGNE(INDIRECT("1:70"))-1;;1))>0))=0;
INDE
X(Q4:Q74;EQUIV(1;1*(SOUS.TOTAL(9;DECALER(Q4:Q74;LIGNE(INDIRECT("1:70"))-1;;1
))>0
);0));"")
Avatar
AV
.....Je pense que celle-ci est faite pour des valeurs numérique


C'est tout à fait bien pensé ;-)
Autre approche (insensible au type de valeurs) avec la plage nommée "zz" (pour
condenser un peu la formule) :
Pas de cellules vides
Matricielle
=SI(NB(SI(SI(SOUS.TOTAL(3;DECALER(zz;LIGNE(zz)-MIN(LIGNE(zz));;1));LIGNE(zz);"")
;1))=LIGNES(zz);"";INDEX(zz;MIN(SI(SOUS.TOTAL(3;DECALER(zz;LIGNE(zz)-MIN(LIGNE(z
z));;1));LIGNE(zz);""))-(LIGNE(zz)-1)))

AV

Avatar
David 02
Bonjour alain

Un grand merci, super cela fonctionne





"AV" a écrit dans le message de
news:
.....Je pense que celle-ci est faite pour des valeurs numérique


C'est tout à fait bien pensé ;-)
Autre approche (insensible au type de valeurs) avec la plage nommée "zz"
(pour

condenser un peu la formule) :
Pas de cellules vides
Matricielle

=SI(NB(SI(SI(SOUS.TOTAL(3;DECALER(zz;LIGNE(zz)-MIN(LIGNE(zz));;1));LIGNE(zz)

;"")

;1))=LIGNES(zz);"";INDEX(zz;MIN(SI(SOUS.TOTAL(3;DECALER(zz;LIGNE(zz)-MIN(LIG

NE(z
z));;1));LIGNE(zz);""))-(LIGNE(zz)-1)))

AV





Avatar
Daniel.M
Bonjour,

Peut-être aussi la matricielle suivante:

=INDEX(zz;EQUIV(1;SOUS.TOTAL(3;DECALER(zz;LIGNE(zz)-
MIN(LIGNE(zz));;1));0))

Salutations,

Daniel M.

"David 02" wrote in message
news:bpve8a$t1h$
Bonjour alain

Un grand merci, super cela fonctionne





"AV" a écrit dans le message de
news:
.....Je pense que celle-ci est faite pour des valeurs numérique


C'est tout à fait bien pensé ;-)
Autre approche (insensible au type de valeurs) avec la plage nommée "zz"
(pour

condenser un peu la formule) :
Pas de cellules vides
Matricielle

=SI(NB(SI(SI(SOUS.TOTAL(3;DECALER(zz;LIGNE(zz)-MIN(LIGNE(zz));;1));LIGNE(zz)

;"")

;1))=LIGNES(zz);"";INDEX(zz;MIN(SI(SOUS.TOTAL(3;DECALER(zz;LIGNE(zz)-MIN(LIG

NE(z
z));;1));LIGNE(zz);""))-(LIGNE(zz)-1)))

AV









1 2