XL 2016 Recherche a deux conditions dans plusieurs onglets

thivame

XLDnaute Junior
Bonjour,

J'ai un soucis, dans mon tableau cette formule fonctionne très bien et le renvoi la valeur cherchée

{=SIERREUR(SI(NB.SI($A259;"="&"BAC*")=1;INDEX($E$2:$O$500;EQUIV(1;($E$2:$E$500=E259)*($X$2:$X$500="BAC")*($F$2:$F$500="echec");0);10);"");"")}

Mais si je veux la transformer pour chercher dans plusieurs onglets qui correspondent aux années, cela ne fonctionne pas

{=SIERREUR(SI(NB.SI($A259;"="&"BAC*")=1;INDEX(INDIRECT( "'" & periode2 & "'!$E$2:$O$500");EQUIV(1;(INDIRECT( "'" & periode2 & "'!$E$2:$E$500")=E259)*(INDIRECT( "'" & periode2 & "'!$x$2:$x$500")="BAC")*(INDIRECT( "'" & periode2 & "'!$F$2:$F$500")="echec");0);10);"");"")}

"periode2" représente le nom définissant les onglets 2021; 2022; 2023.

Comment faire cette recherche sur plusieurs onglets,sachant que la valeur cherchée " e259" peut se retrouver plusieurs fois dans les onglets mes l'ensemble des critères 1 seule fois ? De plus j'ai été obligé de modifier mon tableau car il n'accepte pas ($X$2:$X$500="BAC*)

Merci par avance pour votre aide

Cordialement
 
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Thivame, Gbinforme,
Si vous n'avez que trois onglets, pourquoi ne pas faire simplement quelque chose du genre :
VB:
=SIERREUR(Formule1;"") & SIERREUR(Formule2;"") & SIERREUR(Formule3;"")
Dans votre fichier cela ferait :
Code:
=SIERREUR(SI(NB.SI('2021'!$A259;"="&"BAC*")=1;INDEX('2021'!$E$2:$O$500;EQUIV(1;('2021'!$E$2:$E$500='2021'!E259)*('2021'!$X$2:$X$500="BAC")*('2021'!$F$2:$F$500="echec");0);10);"");"") &
SIERREUR(SI(NB.SI('2022'!$A259;"="&"BAC*")=1;INDEX('2022'!$E$2:$O$500;EQUIV(1;('2022'!$E$2:$E$500='2022'!E259)*('2022'!$X$2:$X$500="BAC")*('2022'!$F$2:$F$500="echec");0);10);"");"") &
SIERREUR(SI(NB.SI('2023'!$A259;"="&"BAC*")=1;INDEX('2023'!$E$2:$O$500;EQUIV(1;('2023'!$E$2:$E$500='2023'!E259)*('2021'!$X$2:$X$500="BAC")*('2023'!$F$2:$F$500="echec");0);10);"");"")
En matriciel bien sur.
 

thivame

XLDnaute Junior
Avec un seul nom ("periode2") je ne vois pas comment tu pourrais définir 3 onglets.
Je pense qu'il te faut les trois noms en clair ou enregistrés dans une cellule.
Bonjour,
Le nom "période" fait référence aux cellules A1,A2,A3 .de mon onglets "bases".qui reprennent le nom des onglets..
Cela marche pour une autre formule.



Bonjour Silvano,
Malheureusement en réalité pour le moment j'ai 5 onglets et cela va augmenter au fil des années

Mais je sèche mise à part faire des formules a rallonge...mais plus de 3 onglets c'est vraiment lourd, surtout que je dois faire plusieurs recherche la suite....

Cordialement
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Juste deux questions, si j'ai bien compris.
1- S'agissant d'un historique, la première feuille ne peut pas contenir de données en colonne F et G ?
C'est ce qu'on pourrait considérer comme la feuille de départ.
2- Pour une année donnée on traite les années en "reculant" ?
Par ex en 2023 on regarde par rapport à 2022, si pas trouvé on regarde en 2021 ....
Mais on s'arrête au premier item trouvé ?
( par ex 2021 échec, 2022 réussi, on remonte pour 2023 "réussi" qui serait le résultat du dernier test passé ? )

NB: Si j'ai bien compris, alors je ne pense pas que ce soit faisable en formules. Après vos réponses je regarderais en VBA.
 

thivame

XLDnaute Junior
les deux premières feuilles ne sont pas des année..
La feuille 2019 peut contenir des infos en "f" et "I" venant de la même année ou des années suivantes pour indiquer en "I" quel examen a passé la personne ayant fini le test de sélection..
La colonne "G" indique: vide= fini, malade : non fini pour maladie, parti: non fini pour raison autre... Cette colonne se rempli automatiquement par un code vba venant d'un autre classeur....
Concernant le colonne "F" j'arrive à la remplir par formule quand il s'agit d'un "retour" d'un test de sélection , mais pour l'examen non, je pense que c'est parce qu'il prend la première occurrence...et que j'ai eu de la chance jusqu'à ce jour.. Ou autre chose
 

thivame

XLDnaute Junior
Bonjour,
Par manque de temps je n'ai pu repondre et j'en suis désolé.
Voici un fichier avec une partie de ma formule (celle qui me pose problème) adaptée., avec les meme symptomes.
merci par avance
 

Pièces jointes

  • essai liste candidats.xlsx
    20.6 KB · Affichages: 2

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour,
Je pense que par formule ce ne soit l'usine à gaz, car il y a tout à parier qu'il s'arrêtera à la première occurrence, et si ce n'est pas le cas il faudrait analyser toutes les situations pour voir quelle est celle à traiter.
Et ce sur toutes les années précédentes.

En VBA on peut faire une fonction comme celle là :
VB:
Function ChercheSituation(Id$)
    ChercheSituation = ""
    With Sheets("2019")
        If Application.CountIf(.[D:D], Id) > 0 Then
            DL = .Cells(.Cells.Rows.Count, "D").End(xlUp).Row
            For L = 2 To DL
                If .Cells(L, "D") = Id And .Cells(L, "E") <> "" Then
                    ChercheSituation = .Cells(L, "E") & " en 2019 à " & .Cells(L, "A")
                    Exit Function
                End If
            Next L
        End If
    End With
End Function
mais qui ne traite que l'année précédente.
Et comme je n'ai pas compris s'il fallait traiter toutes les années antérieures et postérieures je ne peut en faire plus.
Mais vous pouvez l'adapter plus précisément avec vos besoins.
 

Pièces jointes

  • essai liste candidats (1).xlsm
    32.8 KB · Affichages: 1

thivame

XLDnaute Junior
Bonjour,
En fait j'ai trouvé un semblant de solution
Dans chaque onglet j'ai créé des colonnes cachées a la suite représentant chaque onglet (année) et je fais les recherches par année...je n'ai pas finalisé..mais je pense que ça va ramer un peu.
Merci pour votre aide
 

Discussions similaires

Statistiques des forums

Discussions
312 207
Messages
2 086 234
Membres
103 162
dernier inscrit
fcfg