
Formule générique
=COUNTIF(range,"<="&A1)
Sommaire
Pour trier dynamiquement les valeurs de texte par ordre alphabétique, vous pouvez utiliser une formule basée sur la fonction COUNTIF. Dans l'exemple illustré, la formule en C5 est:
=COUNTIF(countries,"<="&B5)
où "pays" est la plage nommée B4: B13
Explication
Cette formule utilise l'opérateur "supérieur ou égal à" avec du texte, ce que vous n'avez peut-être pas essayé auparavant. Lorsque Excel compare du texte, il décide quelle valeur est "supérieure" à une autre règle basée sur le schéma de numérotation ASCII.
Dans COUNTIF, l'argument de plage est fourni en tant que plage nommée «pays» (B4: B13) et les critères sont fournis en tant que «inférieur ou égal à» la valeur en C5. Dans chaque ligne, COUNTIFS renvoie le nombre de valeurs inférieures ou égales à la valeur actuelle, ce qui crée une liste séquentielle de nombres (c'est-à-dire un rang) dans la colonne d'assistance.
Liste des valeurs triées
La colonne d'assistance peut être utilisée pour récupérer des valeurs triées par rang. Dans E5, la formule utilisée pour récupérer les valeurs est:
=INDEX(countries,MATCH(ROWS($E$5:E5),helper,0))
Il s'agit d'une formule INDEX et MATCH qui utilise une référence en expansion pour générer des nombres séquentiels, qui sont introduits dans MATCH en tant que valeurs de recherche. MATCH détermine où chaque nombre existe dans les données et INDEX récupère la valeur à cette position. Voir cette page pour une explication plus détaillée.
Gestion des doublons
Si les données contiennent des valeurs de texte en double, la séquence de numéros de tri contiendra également des doublons, ce qui posera des problèmes si vous essayez de récupérer des valeurs avec la fonction INDEX. Pour contourner ce problème, vous pouvez utiliser une variante de la formule qui incrémente les doublons avec un deuxième COUNTIF:
=COUNTIF(countries,"<"&B5)+COUNTIF($B$5:B5,B5)
Notez que l'opérateur logique de la première fonction COUNTIF a été ajusté et que la plage de la deuxième fonction COUNTIF est une référence en expansion.