Formule Excel: abréger les noms ou les mots -

Formule générique

=TEXTJOIN("",1,IF(ISNUMBER(MATCH(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)),ROW(INDIRECT("65:90")),0)),MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),""))

Sommaire

Pour abréger le texte contenant des majuscules, vous pouvez essayer cette formule matricielle basée sur la fonction TEXTJOIN, une nouvelle fonction disponible dans Office 365 et Excel 2019. Vous pouvez utiliser cette approche pour créer des initiales à partir de noms ou pour créer des acronymes. Seules les majuscules survivront à cette formule, le texte source doit donc inclure des mots en majuscules. Vous pouvez utiliser la fonction PROPER pour mettre les mots en majuscules si nécessaire.

Dans l'exemple illustré, la formule en C5 est:

=TEXTJOIN("",1,IF(ISNUMBER(MATCH(CODE(MID(B5,ROW(INDIRECT("1:"&LEN(B5))),1)),ROW(INDIRECT("65:90")),0)),MID(B5,ROW(INDIRECT("1:"&LEN(B5))),1),""))

Explication

Travaillant de l'intérieur vers l'extérieur, la fonction MID est utilisée pour convertir la chaîne en un tableau de lettres individuelles:

MID(B5,ROW(INDIRECT("1:"&LEN(B5))),1)

Dans cette partie de la formule, MID, ROW, INDIRECT et LEN sont utilisés pour convertir une chaîne en un tableau ou des lettres, comme décrit ici.

MID renvoie un tableau de tous les caractères du texte.

("W"; "i"; "l"; "l"; "i"; "a"; "m"; ""; "S"; "h"; "a"; "k"; "e ";" s ";" p ";" e ";" a ";" r ";" e ")

Ce tableau est introduit dans la fonction CODE, qui produit un tableau de codes ascii numériques, un pour chaque lettre.

Séparément, ROW et INDIRECT sont utilisés pour créer un autre tableau numérique:

ROW(INDIRECT("65:90")

C'est la partie la plus intelligente. Les nombres 65 à 90 correspondent aux codes ascii pour toutes les lettres majuscules entre AZ. Ce tableau entre dans la fonction MATCH en tant que tableau de recherche, et le tableau d'origine de codes ascii est fourni comme valeur de recherche.

MATCH renvoie alors soit un nombre (basé sur une position), soit l'erreur # N / A. Les nombres étant des lettres majuscules, la fonction ISNUMBER est utilisée avec la fonction IF pour filtrer les résultats. Seuls les caractères dont le code ascii est compris entre 65 et 90 feront partie du tableau final, qui est ensuite réassemblé avec la fonction TEXTJOIN pour créer l'abréviation ou l'acronyme final.

Bons liens

Obtenir les initiales du nom (Chandoo)

Articles intéressants...