Fonction SI résultat d'un filtre
Résolu
bacflippe
Messages postés
67
Statut
Membre
-
bacflippe Messages postés 67 Statut Membre -
bacflippe Messages postés 67 Statut Membre -
Bonjour,
Tout d'abord meilleurs voeux pour cette année !
Après moultes recherches et quelques tentatives infructueuses je viens vous demander de l'aide.
Je souhaiterais obtenir un résultat découlant de la fonction SI, en fonction d'un filtre appliqué à une colonne.
Je m'explique, par exemple, dans la colonne B filtrée peut apparaitre soit CB, soit virement, soit un numéro, pas forcémént une seule ligne mais possiblement deux ou trois.
En filtrant par nom, je voudrais que la cellule D10 me retourne le résultat escompté, soit CB, soit, virement, soit chèque pour tous les autres cas de figure (un numéro).
J'espère avoir été assez clair ?
Merci par avance.
https://www.cjoint.com/c/LAdxsit28Hu
Tout d'abord meilleurs voeux pour cette année !
Après moultes recherches et quelques tentatives infructueuses je viens vous demander de l'aide.
Je souhaiterais obtenir un résultat découlant de la fonction SI, en fonction d'un filtre appliqué à une colonne.
Je m'explique, par exemple, dans la colonne B filtrée peut apparaitre soit CB, soit virement, soit un numéro, pas forcémént une seule ligne mais possiblement deux ou trois.
En filtrant par nom, je voudrais que la cellule D10 me retourne le résultat escompté, soit CB, soit, virement, soit chèque pour tous les autres cas de figure (un numéro).
J'espère avoir été assez clair ?
Merci par avance.
https://www.cjoint.com/c/LAdxsit28Hu
10 réponses
-
Re,
c'est normal, en E38 tu as cette formule qui ne peut fonctionner en l'état
=SI(Table1[chèque]="virement";"virement";SI(Table1[chèque]="CB";"CB";"chèque"))
parce colonne chèque tu as
6546574
5400844
virement
CB
et dans ta formule tu ne fais pas référence soit à un numéro de facture ou une donnée unique de ton tableau.
Exemple si tu veux en E38 CB qui correspond à la facture 2393 il conviendrait d'utiliser la syntaxe RECHERCHEV par exemple en E34 tu saisis 2393 et en E34 cette formule
=SIERREUR(SI(ESTNUM(RECHERCHEV(E34;Table1;8;0)*1);"Chèque";RECHERCHEV(E34;Table1;8;0));"")
-
Bonjour.
Je ne vois vraiment pas comment on pourrait s'y prendre ...
Pourquoi ne ferais-tu pas l'inverse ? Saisir en D10 (si besoin avec une liste déroulante de cellule) le type de paiement, et que cette saisie serve à lancer le filtre !
-
Bonjour et merci pour la réponse, malheureusement cela est impossible, le filtre est dèjà lancé par une macro!
Je ne peux pas changer le fonctionnement.
Les noms sont filtrés les uns après les autres, par ordre alphabétique ... -
Bonjour.
Quand on travaille avec macro, c'est la moindre des choses de le signaler.
Ainsi je n'aurais même pas essayé d'intervenir, n'y connaissant rien en VBA ...
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Bonjour,
Tu parles de macro, hors ton fichier n'en contient pas et un fichier avec macro ne peut être enregistré en XLSX mais en XLSM, éventuellement en XLS s'il s'agit d'un fichier ancien ou que ton Excel est antérieur à 2007.
donc pour t'aider il faudrait connaitre toute la structure de ton fichier sinon les recherches peuvent durer longtemps.
PS: Salut Raymond Meilleurs vœux https://www.cjoint.com/c/KLFxKlfydcF
-
Bonjour et meilleurs voeux,
voici le fichier en question : https://www.cjoint.com/c/LAenzhwcFpu
Je cherche à récupérer en E38 la condition de la colonne [chèque] filtrée en utilisant la macro bouton de contrôle féches gauche/droite.
Merci par avance -
Merci pour la réponse !
Je pense pouvoir l'adapter, je n'arrive pas à lier le numéro de facture apparaissant en première ligne suite au filtre appliqué à la cellule E34 par exemple, je ne sais pas si je suis clair...
Je souhaiterai que la cellule E34 me renvoie le premier numéro de facture de la colonne A une fois le filtre par nom appliqué... -
Re,
essaye en A34 une formule matricielle qu'il faudra confirmer en cliquant en même temps sur les trois touches du clavier Ctrl Shift et Entrée et si tu fais bien la formule se placera entre ces accolades {}
=INDEX(Table1[N° fact];MIN(SI(SOUS.TOTAL(3;DECALER(A61;LIGNE(INDIRECT("1:"&LIGNES(A18:A400)));));LIGNE(INDIRECT("1:"&LIGNES(A18:A400))))))
et en cellule E34
=SIERREUR(SI(ESTNUM(RECHERCHEV(E34;Table1;8;0)*1);"Chèque";RECHERCHEV(E34;Table1;8;0));"")
-
La formule fonctionne très bien également , du coup j'hésite ...laquelle est la mieux ?
-
Re,
prend celle que je t'ai donnée, elle prend en compte les colonnes de ton tableau Table1[N° fact]
ensuite lorsque tu actives tes codes, il se mettent en erreur et plantent le VBA
en début de tes codes juste après tes variables colle cette gestion d'erreur
On Error Resume Next