Bonjour,
décomposition de la formule :
=SIERREUR(INDEX(Saisies_2024[NOM];PETITE.VALEUR(SI((Saisies_2024[DATE]=[@DATE2024]);LIGNE(Saisies_2024[DATE]);9^9);COLONNE()-5)-3);"")
le SIERREUR pour éviter d'afficher un message d'erreur si l'INDEX en retourne une.
SI((Saisies_2024[DATE]=[@DATE2024]);LIGNE(Saisies_2024[DATE]);9^9)
on va tester la date de la ligne où se trouve la formule avec les dates de la colonne Date du tableau qui reprend ces dates avec le conducteur.
Si c'est égal alors la fonction SI renvoie le numéro de la ligne de la donnée de la colonne DATE du tableau, sinon elle renvoi une "grande valeur" correspondant à 9 puissance 9. dans le fichier fourni en ligne 4 pour le dimanche 1/09 le SI reverra les numéros 6,7 et 8 correspondant aux cellules O6,O7 et O8.
Une fonction SI ne renvoie pas de "matrice" mais comme elle est inclue dans la fonction Petite.Valeur on aura bien une matrice en retour. petite erreur de ma part, je crois que Excel 2019 sait automatiquement gérer les formules matricielles, donc pour vous la formule devra être validée par la combinaison des trois touches suivantes : CTRL+SHIFT+ENTREE, des accolades {} devraient alors encadrer la formule.
Ensuite dans cette matrice de petit numéro de ligne et de grand, pour la colonne F nous recherchons le premier 01/09, pour cela il y a le paramètre "k" de cette fonction, et afin que la formule soit étirable vers la droite, on rend le "k" dynamique en le remplaçant par la fonction Colonne().
Mais en colonne F le k vaudrait 6, or nous voulons la première petite valeur, donc on fait 6-5, Colonne()-5.
On a bien la première valeur, donc en colonne F et ligne 4 petite valeur correspond à une matrice représentant le résultat des tests du SI, et on demande à renvoyer la première petite valeur : PETITE.VALEUR({387420489;387420489;6;7;8;387420489;...};Colonne(F)-5) = PETITE.VALEUR({387420489;387420489;6;7;8;387420489;...};1)
première petite valeur = 6
avec la fonction INDEX qui cible la colonne NOM du tableau on retourne la 6 ligne de cette colonne donc, mais ce n'est pas bon car les données de cette colonne du tableau ne commence pas en ligne 1 mais en ligne 4, donc on applique une différence de 3 : INDEX(Colonne nom du tableau; ligne à retourner -3) où ligne à retourner est le résultat de Petite Valeur = 6, donc 6-3 = 3, donc index renvoi la troisième valeur de la colonne Nom du tableau = AUGIER.
Quand la formule passe en G, colonne() passe à 7, 7-5 = 2, en colonne G INDEX renvoi la deuxième petite valeur qui est 7 auquel on retire 3 = 4, quatrième ligne de la colonne Nom du tableau = LOEB etc...
Votre fichier avec la formule validée en matricielle, 2019 me les supprimes lors des recopies... donc la matricielle doit être bonne en F4, à vous de la propagée sur la droite :
Ceci dit comme écrit dans ma signature je suis resté en 2014... Le mieux est de s'orienter vers les "nouveaux" outils fournis avec Excel tel que PowerQuerry !
@ bientôt
LouReeD