
Všeobecný vzorec
=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),""))
Zhrnutie
Ak chcete skrátiť text, ktorý obsahuje veľké písmená, môžete vyskúšať tento vzorec poľa založený na funkcii TEXTJOIN, novej funkcii dostupnej v Office 365 a Excel 2019. Tento prístup môžete použiť na vytvorenie iniciálok z mien alebo na vytvorenie skratiek. Tento vzorec prežije iba veľké písmená, takže zdrojový text musí obsahovať slová písané veľkými písmenami. Ak je to potrebné, môžete na veľké slová použiť funkciu VLASTNÝ.
V zobrazenom príklade je vzorec v 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),""))
Vysvetlenie
Pri práci zvnútra von sa funkcia MID používa na vrhanie reťazca do poľa jednotlivých písmen:
MID(B5,ROW(INDIRECT("1:"&LEN(B5))),1)
V tejto časti vzorca sa MID, ROW, INDIRECT a LEN používajú na prevod reťazca na pole alebo písmená, ako je popísané tu.
MID vráti pole všetkých znakov v texte.
(„W“; „i“; „l“; „l“; „i“; „a“; „m“; „“; „S“; „h“; „a“; „k“; „e ";" s ";" p ";" e ";" a ";" r ";" e ")
Toto pole sa napája na funkciu CODE, ktorá na výstup privádza pole číselných kódov ascii, jeden pre každé písmeno.
Samostatne sa ROW a INDIRECT používajú na vytvorenie ďalšieho číselného poľa:
ROW(INDIRECT("65:90")
Toto je šikovný kúsok. Čísla 65 až 90 zodpovedajú kódom ascii pre všetky veľké písmená medzi AZ. Toto pole vstupuje do funkcie MATCH ako vyhľadávacie pole a ako vyhľadávacia hodnota sa poskytuje pôvodné pole kódov ascii.
MATCH potom vráti buď číslo (na základe polohy), alebo chybu # N / A. Čísla predstavujú veľké písmená, takže na filtrovanie výsledkov sa používa funkcia ISNUMBER spolu s funkciou IF. Iba znaky, ktorých kód ascii je medzi 65 a 90, sa dostanú do výsledného poľa, ktoré sa potom znovu spojí s funkciou TEXTJOIN a vytvorí sa výsledná skratka alebo skratka.