Excel-formel: Forkort navn eller ord -

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),""))

Sammendrag

For å forkorte tekst som inneholder store bokstaver, kan du prøve denne matriseformelen basert på TEXTJOIN-funksjonen, en ny funksjon som er tilgjengelig i Office 365 og Excel 2019. Du kan bruke denne tilnærmingen til å lage initialer fra navn, eller til å lage akronymer. Bare store bokstaver vil overleve denne formelen, så kildeteksten må inneholde store bokstaver. Du kan bruke PROPER-funksjonen til å bruke store bokstaver om nødvendig.

I eksemplet vist er formelen 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),""))

Forklaring

MID-funksjonen fungerer fra innsiden og ut og brukes til å kaste strengen i en rekke individuelle bokstaver:

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

I denne delen av formelen brukes MID, ROW, INDIRECT og LEN til å konvertere en streng til en matrise eller bokstaver, som beskrevet her.

MID returnerer en matrise med alle tegn i teksten.

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

Denne matingen mates inn i KODE-funksjonen, som sender ut en matrise med numeriske ascii-koder, en for hver bokstav.

Separat brukes ROW og INDIRECT til å lage en annen numerisk matrise:

ROW(INDIRECT("65:90")

Dette er den smarte biten. Tallene 65 til 90 tilsvarer ascii-kodene for alle store bokstaver mellom AZ. Denne matrisen går inn i MATCH-funksjonen som oppslagsmatrisen, og den opprinnelige matrisen med ascii-koder er gitt som oppslagsverdien.

MATCH returnerer deretter enten et tall (basert på en posisjon) eller feilen # N / A. Tall representerer store bokstaver, så ISNUMBER-funksjonen brukes sammen med IF-funksjonen for å filtrere resultatene. Bare tegn hvis ascii-kode er mellom 65 og 90, blir til den endelige matrisen, som deretter samles på nytt med TEXTJOIN-funksjonen for å lage den endelige forkortelsen eller akronymet.

Gode ​​lenker

Få initialer fra navn (Chandoo)

Interessante artikler...