Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2013 Ajouter critère à INDEX

  • Initiateur de la discussion Initiateur de la discussion call911
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

call911

XLDnaute Occasionnel
Bonjour,

Je ne sais pas trop comment formuler ma question, mais en gros voila mon problème.
j'ai dans plusieurs onglets des informations que je voudrais appeler sur un tableau.

Est il possible d'intégrer dans la formule suivante, un critère supplémentaire à EQUIV:
je voudrais que sur la partie [@type], ne récupérer dans la colonne Feesaccount[typetransaction] seulement les montants ou "paiement" est présent, dans [@type] et dans Feesaccount[typetransaction].

Code:
{=SIERREUR(INDEX(Feesaccount[amount];EQUIV([@id]&[@type];Feesaccount[transactionsp_id]&Feesaccount[typetransaction];0));"")}

En esperant etre à peu pret clair dans mes explications 🙂

Merci
 
Bonjour,
Si je comprends tu veux ajouter une condition.
Tu ne peux plus faire juste un equiv, il faut reprendre ta formule pour créer une matrice de N° de lignes qui correspondent aux conditions et afficher chaque valeur de cette matrice sur la bonne ligne.
Tu devrais fournir un petit fichier exemple pour que ce soit plus clair et qu'on puisse te proposer une formule.
Cordialement
 
Merci pour la réponse et pour le support,

C'est vrai qu'avec un fichier c'est peut etre plus simple 😀

Ci joint un fichier.
Dans l'exemple, je cherche à partir de l'id et du type de la feuille transactionsp à appeler soit commission, soit payment (en fait, je vais appeler les 2 dans deux colonnes différentes), en sachant que dans mon tableau définitif, on peut retrouver soit xxxcommission, ou commissionxxx dans l'onglet typetransaction de l'onglet feesacount, et que je souhaite appeler juste le terme commission.
 

Pièces jointes

Re,
voir pj avec deux tableaux un pour payment et un pour commission. L'exemple est peut-être un peu trop réduit pour être parlant (j'ai l'impression d'avoir zappé un critère). Tu peux ajouer des critères en multipliant par la nouvelle condition entre parenthèses.
Le -1 après LIGNE(Feesaccount[typetransaction]) permet d'avoir le bon N° de ligne car la fonction renvoie un N° de ligne absolu et pas un N° de ligne dans le tableau. Si la première ligne utile (hors titre) du tableau Feesaccount est en ligne 4 il faudra faire -3.
à tester à plus grande échelle, cordialement
 

Pièces jointes

Hello,
ce n'est pas la première fois que je ne parviens pas à me faire comprendre sur le sujet mais là je crois que j'ai trouvé la bonne façon de le dire :
Si ta ligne de titres du tableau de données est la ligne 1 tu enlèves 1 si la ligne de titres du tableau de données est la ligne 12 tu enlèves 12.
On discutera plus tard de la raison ... 🙂
 
re
je ne vais pas te laisser dans l'ignorance !
Enfin, je vais tenter :
La formule si(..condition; ligne(plage)...) renvoie un numéro de ligne (25 si le résultat est sur la ligne 25)
par contre dans la formule index(plage;N°ligne) utilisée pour afficher le résultat, le N° de ligne doit être un N° de ligne dans le tableau : 1 pour la première ligne du tableau etc.
Si ton tableau commence à la ligne 12 et que le résultat est en première ligne du tableau : le résultat de si(condition;ligne(plage)) sera 13 mais dans l'index il faut appeler la ligne 1 d'ou le si(condition;ligne(plage)-N° de la ligne de titre)
Espérant avoir été clair
 
Bonjour Dugenou,

J'ai continué à travailler sur mon tableau et j'aimerai savoir si il est possible d'ajouter une condition sur la formule que tu m'as proposé.
Est ce que sur la partie (ESTNUM(TROUVE("commission";Feesaccount[typetransaction]))) il serait possible de faire en sorte que la recherche se porte sur "commission", ou "debit" par exemple?
Et si on pouvait etendre cette condition de ou bien tel critère, ou bien tel critère, cela m'éviterai de l'éclater sur plusieurs colonne.

Cordialement
 
Re,
On va avoir des formules à rallonge, mais c'est faisable : comme on est dans un calcul matriciel le ET et le OU ne fonctionnent pas : on doit faire * entre chaque condition pour le ET et + pour le OU
donc
Code:
=...*(ESTNUM(TROUVE("commission";Feesaccount[typetransaction]))+ESTNUM(TROUVE("debit";Feesaccount[typetransaction])))...
attention à bien gérer les parenthèses.
Cordialement
 
Bonjour,

J'hésite à créer un nouveau sujet, mais comme il s'agit d'un problème sur la même formule, je tente sur ce même fil de discussion.

Dans la formule:

Code:
{=INDEX(Feesaccount[amount];MIN(SI((Feesaccount[transaction_id]=[@id])*ESTNUM(TROUVE("Bons_achat_credit";Feesaccount[typetransaction]));LIGNE(Feesaccount[typetransaction])-1)))}

Le problème est que si "id" n'est pas présent dans la colonne "transaction_id", il me donne une valeur fausse.
Je n'arrive pas à déclarer que si la valeur "ID" n'apparait pas dans le tableau "feesaccount" ou la valeur est recherchée, la valeur restituée soit 0.
Comment puis je faire pour déclarer que "SI((Feesaccount[transaction_id]=[@id])" en "[valeur_si_faux]" soit égale à 0?

Je joins l'exemple au cas ou mon explication ne soit pas très claire.
 

Pièces jointes

Bonjour le Forum,
Bonjour call911, Dugenou,

Tu peux tester cette formule qui te renverra 0

Code:
=SIERREUR(INDEX(Feesaccount[amount];PETITE.VALEUR(SI((Feesaccount[transaction_id]=[@id])*(ESTNUM(TROUVE("Bons_achat_credit";Feesaccount[typetransaction])));LIGNE(Feesaccount[typetransaction])-1);1));0)

Cordialement
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…