
Üldine valem
=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),""))
Kokkuvõte
Suurtähti sisaldava teksti lühendamiseks võite proovida seda massiivivalemit, mis põhineb funktsioonil TEXTJOIN, mis on uus funktsioon, mis on saadaval Office 365 ja Excel 2019. Selle lähenemisviisi abil saate luua nimedest initsiaalid või luua akronüüme. Ainult suurtähed jäävad sellest valemist ellu, seega peab algtekst sisaldama suurtähtedega sõnu. Vajaduse korral saate sõnade suurtähtedes kasutada funktsiooni PROPER.
Näidatud näites on valem C5-s:
=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),""))
Selgitus
Seestpoolt töötades kasutatakse funktsiooni MID stringi valamiseks üksikute tähtede massiivi:
MID(B5,ROW(INDIRECT("1:"&LEN(B5))),1)
Selles valemi osas kasutatakse MID, ROW, INDIRECT ja LEN stringi teisendamiseks massiiviks või tähtedeks, nagu siin kirjeldatud.
MID tagastab massiivi kõigist tähemärkidest tekstis.
("W"; "i"; "l"; "l"; "i"; "a"; "m"; ""; "S"; "h"; "a"; "k"; "e ";" s ";" p ";" e ";" a ";" r ";" e ")
See massiiv sisestatakse funktsiooni CODE, mis väljastab arvulise ascii-koodi massiivi, ühe iga tähe jaoks.
Eraldi kasutatakse ROW ja INDIRECT, et luua veel üks arvuline massiiv:
ROW(INDIRECT("65:90")
See on nutikas bitt. Numbrid 65 kuni 90 vastavad kõigi AZ-i vahel olevate suurtähtede ascii-koodidele. See massiiv läheb funktsiooni MATCH otsingu massiivina ja otsinguväärtusena antakse algne ASCII-koodide massiiv.
Seejärel tagastab MATCH kas numbri (positsiooni põhjal) või vea # N / A. Numbrid tähistavad suurtähti, nii et tulemuste filtreerimiseks kasutatakse funktsiooni ISNUMBER koos funktsiooniga IF. Ainult tähemärgid, mille ascii-kood on vahemikus 65–90, teevad lõpliku massiivi, mis seejärel ühendatakse funktsiooniga TEXTJOIN lõpliku lühendi või akronüümi loomiseks.