
Generisk formel
=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),""))
Sammanfattning
För att förkorta text som innehåller stora bokstäver kan du prova denna matrisformel baserat på TEXTJOIN-funktionen, en ny funktion som är tillgänglig i Office 365 och Excel 2019. Du kan använda denna metod för att skapa initialer från namn eller för att skapa akronymer. Endast stora bokstäver överlever denna formel, så källtexten måste innehålla versaler. Du kan använda PROPER-funktionen för att använda stora bokstäver om det behövs.
I exemplet som visas är formeln i C5:
=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),""))
Förklaring
Arbetar inifrån och ut, MID-funktionen används för att kasta strängen i en uppsättning individuella bokstäver:
MID(B5,ROW(INDIRECT("1:"&LEN(B5))),1)
I denna del av formeln används MID, ROW, INDIRECT och LEN för att konvertera en sträng till en array eller bokstäver, som beskrivs här.
MID returnerar en matris med alla tecken i texten.
("W"; "i"; "l"; "l"; "i"; "a"; "m"; ""; "S"; "h"; "a"; "k"; "e ";" s ";" p ";" e ";" a ";" r ";" e ")
Denna matris matas in i CODE-funktionen, som matar ut en matris med numeriska ascii-koder, en för varje bokstav.
Separat används ROW och INDIRECT för att skapa en annan numerisk array:
ROW(INDIRECT("65:90")
Det här är den smarta biten. Siffrorna 65 till 90 motsvarar ascii-koder för alla versaler mellan AZ. Denna matris går in i MATCH-funktionen som uppslagsmatris, och den ursprungliga matrisen med ascii-koder tillhandahålls som uppslagsvärde.
MATCH returnerar sedan antingen ett tal (baserat på en position) eller # N / A-felet. Siffror representerar stora bokstäver, så ISNUMBER-funktionen används tillsammans med IF-funktionen för att filtrera resultat. Endast tecken vars ascii-kod är mellan 65 och 90 blir till den slutliga matrisen, som sedan återmonteras med TEXTJOIN-funktionen för att skapa den slutliga förkortningen eller akronymen.