Index equiv 3 critères

Bonsoir à tous,

Je reviens vers vous en décomposant étape par étape mon problème.

J'essaye de créer une feuille de présence, j'ai donc en feuille 1 un listing d'enfant le jour de la semaine et des moments de la journée telle que garderie, matin ect.

J'aimerai faire avec la formule equiv une recherche à 3 critères. Cela fonctionne mais mon problème est que si j'ai un critère qui comporte plusieurs fois la même valeur alors il me renvoie à la première valeur hors je veuc qu'il se réfère à tous les critères que j'ai demandé.

Voici le lien: https://docs.google.com/spreadsheets/d/1qVECrp_nGQ5OqqDys90fhaeqnHwxvN2u3WWvtkxDxvQ/edit?usp=sharing

Ne faite pas attention aux valeurs remplient en bleu c'est des tests j'espère obtenir de l'aide merci à vous

Bonjour,

je n'avais pas oublié, mais cette fois-ci c'est un peu plus clair.

Je suppose que ta formule est en K10 de Feuille1

Peux-tu rappeler quels sont les 3 critères à respecter ?

Bonnjour,

Alors oui j'ai testé ma formule en K10, cela fonctionne mais j'ai le problème que dès que j'ai 2 fois le même code en A alors il me renvoie la première ligne. Mon critère 1 est le code (ex: 24_Livingston_Tifanny), critère 2: la date, critère 3: cela peut être soit garderie, matin, cantine, après-midi ou soir

24_Livingston _Tifanny2022-01-1707:55:41garderie24_Livingston _Tifanny2022-01-1720:29:54mati

ok pour le code

ok pour la date

ensuite tu donnes "garderie, matin, cantine, après-midi ou soir" qui se trouvent dans le tableau à différentes colonnes ... et le résultat attendu c'est quoi ? l'heure qui se trouve sur la ligne supérieure ?


edit : Tifanny = je te donne la réponse demain matin, c'est un peu complexe car il faut chercher le critère dans le tableau extrait

Oui garderie, matin ect sont dans des colonnes différentes.

imagine je veux l'information de l'heure pour le code 24_Tifanny_Livingston pour la date du 2022-01-17 pour le matin.

Quand j'essaye un index equiv par exemple on me renvoie à la valeur qui est liée au critère garderie et non cantine.

Pas de soucis merci de ton investissement

Voici https://docs.google.com/spreadsheets/d/1otglASoQ1awsQXp4wj0QzUFu2qQay3vpk_G6oiG1Skg/copy

=iferror(query(arrayformula(to_text(split(flatten(query({$A$2:$C\($D$1:$H$1&"|"&$D$2:$H)};"select * where Col1='"&J2&"' and Col2=DATE'"&TEXT(K2;"yyyy-MM-dd")&"' ";0));"|")));"select Col1 where Col2='"&L2&"' limit 1 ";0)*1)
image

Pourquoi c'est si complexe ? car il faut associer pour chaque valeur l'en-tête de la colonne

$D$1:$H$1&"|"&$D$2:$H

adjoindre les 3 premières colonnes

{$A$2:$C\($D$1:$H$1&"|"&$D$2:$H)}

faire une première sélection sur le code et la date

query({$A$2:$C\($D$1:$H$1&"|"&$D$2:$H)};"select * where Col1='"&J2&"' and Col2=DATE'"&TEXT(K2;"yyyy-MM-dd")&"' ";0)

rendre le tout linéaire en 2 colonnes par

split(flatten(___________);"|")

et enfin ne retenir que la valeur pour laquelle la seconde colonne ainsi obtenue est égale au 3ème critère !

je ne tiens compte que du premier résultat trouvé (je suppose qu'il ne peut pas y en avoir plusieurs, sinon je corrige)

Oula ça a l'air assez complexe je ne connaissais pas cette formule. Je vais l'essayer dans la matinée et je te fais un retour . Merci de ton aide

Alors j'ai regardé, ta formule fonctionne, le petit problème est que D1:H1 ne m'intéresse pas ici c'est pour l'étape d'après. Ce que je veux moi c'est afficher l'heure en colonne C.

Pourrais tu m'expliquer le sens de la formule pour que je comprenne comment elle fonctionne pour ne pas l'utiliser bêtement sans savoir s'il te plaît.

Merci à toi

je suis désolé mais je n'avais pas du tout compris la question

est-ce ceci le résultat souhaité ?

=index(D$1:$1;MATCH("zzz";D2:2;1))
image

à condition qu'il n'y ait qu'une seule donnée dans la ligne (sinon cette formule prend la dernière)

Ca ne fonctionne pas. Je vais essayer de t'expliquer avec le tableau en dessous. Ici, j'ai ma feuille 1, je veux que dans la case G5 par exemple retrouver l'heure du code 24_Tifanny_Livingston à la date du 2022-01-17 pour la garderie.

Je vais donc en feuille 2 retrouver les informations scannée que je te joint. Je veux donc en G5 retrouver l'heure 7:55:41 pour la garderie et s'il n'y a pas de garderie alors ne rien afficher.

image image

ok, nouvel essai

  1. le problème que je ne suis pas sûr de comprendre est où se trouve la date recherchée ?? dans ta feuille 1 c'est le lundi 7 février 2022 et dans ta feuille 2 le 17 janvier !!!!
  2. par ailleurs, les données ne correspondent jamais :
    1. matin d'un côté et Matin avec M majuscule de l'autre,
    2. garderie d'un côté et Gm de l'autre

donc si je comprends ton but et si j'aligne les données, cela pourrait donner ceci

=iferror(QUERY(arrayformula(split(flatten(('Feuille 2'!$A$2:$A&"|"&'Feuille 2'!$B$2:$B&"|"&'Feuille 2'!$C$2:$C&"|"&'Feuille 2'!$D$2:$J));"|"));"select Col3 where Col1='"&$E5&"' and Col2="&$G$3*1&" and Col4='"&G$4&"' "))

encore faut-il adapter ta formule pour chaque jour en changeant

$G$3

qui est une cellule fusionnée

image

Voici ce que j'ai fait pour ne pas modifier ton fichier https://docs.google.com/spreadsheets/d/1otglASoQ1awsQXp4wj0QzUFu2qQay3vpk_G6oiG1Skg/copy

Super cela fonctionne à merveille. Oui désolé c'était un tableau test donc y'avait pleins de données partout.

Je vais embêter le moment j'aimerai pousser le sujet plus loin. Imaginons, je scan et l'enfant est présent en garderie et matin. Ce qui veut dire que s'il est là à la garderie il est automatiquement la au matin. Comment rajouter cette formule à la suite de la tienne. Si E5 est rempli alors j'affiche X ou rien SI(E5<>"";"X";""))

image image
Rechercher des sujets similaires à "index equiv criteres"