Aide pour comprendre une formule
FBCH44
Messages postés
8
Date d'inscription
Statut
Membre
Dernière intervention
-
BFCH -
BFCH -
Bonjour,
Je vous ai sollicité pour obtenir dans un onglet une extraction d'une base.
Vous m'aviez renvoyé cette solution, qui correspond tout à fait à mes attentes. Malheureusement, je ne comprends pas l'intégralité de la formule et n'arrive pas l'adapter à d'autres demandes.
est ce que quelqu'un pourrait m'aider à la comprendre svp ?
SI(LIGNES($1:1)<=NB.SI(TS_data;$A$1);INDEX(MesData;PETITE.VALEUR(SI(TS_data=$A$1;LIGNE(INDIRECT("1:"&LIGNES(TS_data))));LIGNES($1:1));1);"")
vous remerciant par avance pour votre aide
CH
Je vous ai sollicité pour obtenir dans un onglet une extraction d'une base.
Vous m'aviez renvoyé cette solution, qui correspond tout à fait à mes attentes. Malheureusement, je ne comprends pas l'intégralité de la formule et n'arrive pas l'adapter à d'autres demandes.
est ce que quelqu'un pourrait m'aider à la comprendre svp ?
SI(LIGNES($1:1)<=NB.SI(TS_data;$A$1);INDEX(MesData;PETITE.VALEUR(SI(TS_data=$A$1;LIGNE(INDIRECT("1:"&LIGNES(TS_data))));LIGNES($1:1));1);"")
vous remerciant par avance pour votre aide
CH
A voir également:
- Aide pour comprendre une formule
- Formule si et - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Formule mathématique - Télécharger - Études & Formations
- Excel mise en forme conditionnelle formule - Guide
6 réponses
Bonjour à tous,
SI(LIGNES($1:1)<=NB.SI(TS_data;$A$1);INDEX(MesData;PETITE.VALEUR(SI(TS_data=$A$1;LIGNE(INDIRECT("1:"&LIGNES(TS_data))));LIGNES($1:1));1);"")
SI(LIGNES($1:1)<=NB.SI(TS_data;$A$1) ==>""
la formule fonctionne pour les lignes auxquelles elle s'applique, sinon, elle renvoie ""
peut etre remplacé par sierreur(formule;"").
on va ranger dans une autre liste les celules qui repondent a la condition, ici TS_data=$A$1
Pour les ranger il faut un ordre
Cet ordre, c'est LIGNES($1:1)
on aura petite.valeur(plage;1, puis 2 (lignes($1;2), etc au fur et a mesure qu' on descend la formule quand il n'y en aura plus, on aura une erreur et le sierreur donnera le ""
LIGNE(INDIRECT("1:"&LIGNES(TS_data)))
Pour compter les valeur de la lise a traiter, il faut savoir combien il y a de lignes
si par exemple TS_data a 10 lignes
LIGNE(INDIRECT("1:"&LIGNES(TS_data))) ==>LIGNE(INDIRECT("1:"&10))==>ligne($1:$10)
si TS_data) correspond a la plage a5:a15 , ou peut mettre ligne(a5:a15 )-4
pourquoi -4 ?
parce que l'index d'une plage commence a 1 ce qui fait 5-4;6-4;etc...
SI(TS_data=$A$1;LIGNE(INDIRECT("1:"&LIGNES(TS_data))))
ça va donner une matrice de 0 ou de 1 appliquée a celle des lignes
on obtient une matrice genre (faux;2;3;faux;faux;faux)
PETITE.VALEUR(SI(TS_data=$A$1;LIGNE(INDIRECT("1:"&LIGNES(TS_data))));LIGNES($1:1))
la premiere valeur c'est 3, apres 4 etc.
dansc la formule se réduit a
INDEX(MesData;2) puis au fur et a mesure qu'on descend
INDEX(MesData;3)
etc
on a ainsi crée une liste des mes data qui repondent aux conditions TS_data=$A$1
Crdlmt
SI(LIGNES($1:1)<=NB.SI(TS_data;$A$1);INDEX(MesData;PETITE.VALEUR(SI(TS_data=$A$1;LIGNE(INDIRECT("1:"&LIGNES(TS_data))));LIGNES($1:1));1);"")
SI(LIGNES($1:1)<=NB.SI(TS_data;$A$1) ==>""
la formule fonctionne pour les lignes auxquelles elle s'applique, sinon, elle renvoie ""
peut etre remplacé par sierreur(formule;"").
on va ranger dans une autre liste les celules qui repondent a la condition, ici TS_data=$A$1
Pour les ranger il faut un ordre
Cet ordre, c'est LIGNES($1:1)
on aura petite.valeur(plage;1, puis 2 (lignes($1;2), etc au fur et a mesure qu' on descend la formule quand il n'y en aura plus, on aura une erreur et le sierreur donnera le ""
LIGNE(INDIRECT("1:"&LIGNES(TS_data)))
Pour compter les valeur de la lise a traiter, il faut savoir combien il y a de lignes
si par exemple TS_data a 10 lignes
LIGNE(INDIRECT("1:"&LIGNES(TS_data))) ==>LIGNE(INDIRECT("1:"&10))==>ligne($1:$10)
si TS_data) correspond a la plage a5:a15 , ou peut mettre ligne(a5:a15 )-4
pourquoi -4 ?
parce que l'index d'une plage commence a 1 ce qui fait 5-4;6-4;etc...
SI(TS_data=$A$1;LIGNE(INDIRECT("1:"&LIGNES(TS_data))))
ça va donner une matrice de 0 ou de 1 appliquée a celle des lignes
on obtient une matrice genre (faux;2;3;faux;faux;faux)
PETITE.VALEUR(SI(TS_data=$A$1;LIGNE(INDIRECT("1:"&LIGNES(TS_data))));LIGNES($1:1))
la premiere valeur c'est 3, apres 4 etc.
dansc la formule se réduit a
INDEX(MesData;2) puis au fur et a mesure qu'on descend
INDEX(MesData;3)
etc
on a ainsi crée une liste des mes data qui repondent aux conditions TS_data=$A$1
Crdlmt
DjiDji59430
Messages postés
4253
Date d'inscription
Statut
Membre
Dernière intervention
700
en excel 365, ça correspond a la fonction filtre()
merci beaucoup pour ces explications.
Mais suis désolée, d'insister, je voulais créer une nouvelle liste des mes data mais cette fois qui répondent aux conditions consultations palais oui.
la liste que j'obtiens : 1er nom puis #Nombre!
je ne vois pas ce qui ne colle pas
SI(LIGNES($1:1)<=NB.SI(Tableau3[Consultation_palais];$A$1);INDEX(MesData;PETITE.VALEUR(SI(Tableau3[Consultation_palais]=$A$1;LIGNE(INDIRECT("1:"&LIGNES(Tableau3[Consultation_palais]))));LIGNES($1:1));1);"")
si vous avez la possibilité de m'aider à nouveau je vous en remercie.
bonne journée
BFCH
Mais suis désolée, d'insister, je voulais créer une nouvelle liste des mes data mais cette fois qui répondent aux conditions consultations palais oui.
la liste que j'obtiens : 1er nom puis #Nombre!
je ne vois pas ce qui ne colle pas
SI(LIGNES($1:1)<=NB.SI(Tableau3[Consultation_palais];$A$1);INDEX(MesData;PETITE.VALEUR(SI(Tableau3[Consultation_palais]=$A$1;LIGNE(INDIRECT("1:"&LIGNES(Tableau3[Consultation_palais]))));LIGNES($1:1));1);"")
si vous avez la possibilité de m'aider à nouveau je vous en remercie.
bonne journée
BFCH
Ce n'est pas moi qui t'ai fait cette formule, je te l'ai simplement expliquée (Mal apparemment !)
C'est quoi le ;1) a la fin ?
essaye
SI(LIGNES($1:1)<=NB.SI(Tableau3[Consultation_palais];$A$1);INDEX(MesData;PETITE.VALEUR(SI(Tableau3[Consultation_palais]=$A$1;LIGNE(INDIRECT("1:"&LIGNES(Tableau3[Consultation_palais]))));LIGNES($1:1)));"")
Crdlmt
C'est quoi le ;1) a la fin ?
essaye
SI(LIGNES($1:1)<=NB.SI(Tableau3[Consultation_palais];$A$1);INDEX(MesData;PETITE.VALEUR(SI(Tableau3[Consultation_palais]=$A$1;LIGNE(INDIRECT("1:"&LIGNES(Tableau3[Consultation_palais]))));LIGNES($1:1)));"")
Crdlmt
ca me mets #ref!
et non, les explications m'aide à comprendre la formule et justement je ne comprends pas pourquoi ca ne fonctionne pas.
en tous les cas merci d'avoir pris le temps d'y répondre
bonne soirée
et non, les explications m'aide à comprendre la formule et justement je ne comprends pas pourquoi ca ne fonctionne pas.
en tous les cas merci d'avoir pris le temps d'y répondre
bonne soirée
bonjour,
Merci pour tes réponses et d'essayer de me dépanner.
même avec les $ ca ne marche pas.
voici l'image de mon fichier. je n'arrive pas à le joindre en excel.

je souhaiterai un onglet qui récupère les données des lignes qui ont "oui" dans consultation palais.
Le tableau "base de données" peut comporter 300 lignes. l'onglet "consultation palais" une cinquantaine.
et il me faut réussir à le faire en automatique, pas par un filtre, car je suis la "conceptrice" mais les utilisateurs ne connaissent pas bien excel et surtout pas les filtres.
il faut donc que j'arrive à leur extraire automatiquement l'onglet avec les données dont ils ont besoin.
merci beaucoup pour ton aide
bonne journée
BFCH
Merci pour tes réponses et d'essayer de me dépanner.
même avec les $ ca ne marche pas.
voici l'image de mon fichier. je n'arrive pas à le joindre en excel.

je souhaiterai un onglet qui récupère les données des lignes qui ont "oui" dans consultation palais.
Le tableau "base de données" peut comporter 300 lignes. l'onglet "consultation palais" une cinquantaine.
et il me faut réussir à le faire en automatique, pas par un filtre, car je suis la "conceptrice" mais les utilisateurs ne connaissent pas bien excel et surtout pas les filtres.
il faut donc que j'arrive à leur extraire automatiquement l'onglet avec les données dont ils ont besoin.
merci beaucoup pour ton aide
bonne journée
BFCH
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Un fichier EXCEL (test ou non), complété par des explications exhaustives et des exemples remplis à la main, mis sur https://www.cjoint.com/ , ainsi que ta version d'Excel, permettrait aux intervenants de répondre plus précisément à ta question.
Crdmt
Un fichier EXCEL (test ou non), complété par des explications exhaustives et des exemples remplis à la main, mis sur https://www.cjoint.com/ , ainsi que ta version d'Excel, permettrait aux intervenants de répondre plus précisément à ta question.
Crdmt