Retrouvez moi pour un super séminaire consacré à ChatGPT
Cliquez ici pour vous inscrire et en savoir plus

Retrouvez moi pour un super séminaire consacré à ChatGPT
Cliquez ici pour vous inscrire et en savoir plus
Je viens de “découvrir” qu’on pouvait directement voir les couleurs dans les formules lorsqu’on affiche les formules.
C’est l’équivalent d’appuyer sur la touche F2 d’une cellule qui contient une formule et donc de voir les couleurs, mais là, ça se fait directement en cliquant sur la formule.
Une approche qui est super intéressante pour analyser et vérifier des fichiers avec des formules qui font références à plusieurs endroits dans le fichier.
Procédure : Formules, afficher les formules et cliquer sur des cellules qui contiennent des formules.
Et savez-vous comment faire pour masquer à nouveau les formules ?
Ca ressemble à ceci :
Réponse : on reclique sur le bouton ?
Vous pouvez télécharger directement le fichier ici :
Avec les nouvelles fonctions d’Excel, ça se fait en une seule formule relativement simple. FILTRE permet de renvoyer un tableau des gagnants. On peut utiliser le MAX si on ne veut retourner que le score le plus élevé.
=FILTRE(Tableau10[Equipe];Tableau10[Points]=MAX(Tableau10[Points]))
On peut aussi ajouter une variante pour déterminer la liste des gagnants en fonction des scores. On utilise pour cela la fonction GRANDE.VALEUR :
=FILTRE(Tableau10[Equipe];Tableau10[Points]>=GRANDE.VALEUR(Tableau10[Points];3))
Que l’ on peut ensuite joindre avec la fonction JOINDRE.TEXTE
=JOINDRE.TEXTE(" ; ";;FILTRE(Tableau10[Equipe];Tableau10[Points]>=GRANDE.VALEUR(Tableau10[Points];3)))
Ensuite (Excel 365), comment gérer le dernier élément. J’utilise la fonction Exclure (excel 365), mais on pourrait aussi utiliser la fonction INDEX pour retourner les lignes qui nous intéressent.
=LET(
gagnants;
FILTRE(Tableau10[Equipe];Tableau10[Points]>=GRANDE.VALEUR(Tableau10[Points];3));
SI(LIGNES(gagnants)=1;
"Le groupe gagnant est le " & MINUSCULE(gagnants);
"Les groupes gagnants sont : " & MINUSCULE(JOINDRE.TEXTE( ", ";;EXCLURE(gagnants;-1))) & " et " & PRENDRE(gagnants;1)))
Et finalement on transforme en Lambda. On pourra personnaliser à l’envie le texte en fonction des besoins. On notera l’utilisation de la fonction TRIER et TRIERPAR pour avoir les gagnants dans le bon ordre.
J’utilise le nom : L_Gagnants pour la lambda
=LAMBDA(ListePoints;ListeParticipants;TopN;[Texte_UnSeulGagnant];[Texte_PlusieursGagnants];LET(MaxN;GRANDE.VALEUR(ListePoints;TopN);gagnants;FILTRE(ListeParticipants;ListePoints>=MaxN);
SI(LIGNES(gagnants)=1;
SI(ISOMITTED(Texte_UnSeulGagnant);"Le gagnant est : ";Texte_UnSeulGagnant) & MINUSCULE(gagnants);
SI(ISOMITTED( Texte_PlusieursGagnants);"Les gagnants sont : "; Texte_PlusieursGagnants) & MINUSCULE(JOINDRE.TEXTE( ", ";;EXCLURE(gagnants;-1))) & " et " & PRENDRE(gagnants;-1))))(Tableau10[Points];Tableau10[Equipe];1;"Le groupe gagnant est le ";"Les groupes gagnants sont : ")
Et une fois que la lambda est créée, c’est super simple à utiliser :
Et en personnalisant le message :
Voici aussi la solution pour Excel 2021, sans la fonction EXCLURE.
L’astuce consiste à utiliser une fonction INDEX combinée avec SEQUENCE, ce qui permet de retourner la liste des n‑1 premiers items : INDEX(gagnants;SEQUENCE(LIGNES(gagnants)-1;1);)
Pour le dernier gagnant, c’est le même principe, mais en plus simple : INDEX(gagnants;LIGNES(gagnants);)
=LAMBDA(ListePoints;ListeParticipants;TopN;[Texte_UnSeulGagnant];[Texte_PlusieursGagnants];
LET(MaxN;GRANDE.VALEUR(ListePoints;TopN);gagnants;FILTRE(TRIERPAR(ListeParticipants;ListePoints;-1);TRIER(ListePoints;;-1)>=MaxN);
SI(LIGNES(gagnants)=1;
SI(ISOMITTED(Texte_UnSeulGagnant);"Le gagnant est : ";Texte_UnSeulGagnant) & MINUSCULE(gagnants);
SI(ISOMITTED( Texte_PlusieursGagnants);"Les gagnants sont : "; Texte_PlusieursGagnants) &
MINUSCULE(JOINDRE.TEXTE( ", ";;INDEX(gagnants;SEQUENCE(LIGNES(gagnants)-1;1);))) &
" et " &INDEX(gagnants;LIGNES(gagnants);)
)))(Tableau10[Points];Tableau10[Equipe];3;"Le groupe gagnant est le ";"Les groupes gagnants sont : ")