
Formula generică
=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),""))
rezumat
Pentru a scurta textul care conține litere mari, puteți încerca această formulă matrice bazată pe funcția TEXTJOIN, o nouă funcție disponibilă în Office 365 și Excel 2019. Puteți utiliza această abordare pentru a crea inițiale din nume sau pentru a crea acronime. Doar literele majuscule vor supraviețui acestei formule, astfel încât textul sursă trebuie să includă cuvinte cu majuscule. Puteți utiliza funcția PROPER pentru a majuscula cuvinte, dacă este necesar.
În exemplul prezentat, formula din C5 este:
=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),""))
Explicaţie
Funcționând din interior spre exterior, funcția MID este utilizată pentru a arunca șirul într-o serie de litere individuale:
MID(B5,ROW(INDIRECT("1:"&LEN(B5))),1)
În această parte a formulei, MID, ROW, INDIRECT și LEN sunt utilizate pentru a converti un șir într-o matrice sau litere, așa cum este descris aici.
MID returnează o serie de caractere din text.
("W"; "i"; "l"; "l"; "i"; "a"; "m"; ""; "S"; "h"; "a"; "k"; "e ";" s ";" p ";" e ";" a ";" r ";" e ")
Această matrice este introdusă în funcția CODE, care generează o matrice de coduri ascii numerice, câte unul pentru fiecare literă.
Separat, ROW și INDIRECT sunt folosite pentru a crea o altă matrice numerică:
ROW(INDIRECT("65:90")
Acesta este bitul inteligent. Numerele de la 65 la 90 corespund codurilor ascii pentru toate literele majuscule dintre AZ. Această matrice intră în funcția MATCH ca matrice de căutare, iar matricea originală de coduri ascii este furnizată ca valoare de căutare.
MATCH apoi returnează fie un număr (pe baza unei poziții), fie eroarea # N / A. Numerele reprezintă litere mari, deci funcția ISNUMBER este utilizată împreună cu funcția IF pentru a filtra rezultatele. Numai caracterele al căror cod ascii este cuprins între 65 și 90 se vor transforma în matricea finală, care este apoi reasamblată cu funcția TEXTJOIN pentru a crea abrevierea sau acronimul final.