Features of !SEMTools

Ұяшықтың бірінші әрпін бас әріппен жазу Excel бағдарламасындағы ең танымал тапсырмалардың бірі болып табылады. Неліктен? Мәселе мынада, мәтін өңдеу кезінде жиі дұрыс регистрді жоғалтады.

Бірнеше ұяшықтардың басына сөз немесе мәтін қосу керек болды делік. Егер олардағы бірінші әріп бас әріппен жазылса, ұяшықтың бүкіл мәтінін шағын әріптермен (мысалы, LOWER LOWER функциясымен) жасау керек еді, ал жаңа сөзді қосқаннан кейін оны бас әріппен жазу керек еді.

Немесе дерекқор сценарийі немесе басқа адам қалыпқа келтіргеннен кейін мәтін тыныс белгілері мен регистрді жоғалтты, содан кейін түпнұсқа жойылды және сақталмады.

Ал сіздің міндетіңіз – мәтінді қайта оқуға ыңғайлы ету. Ол үшін ұяшықтардың әрқайсысының бірінші әріптері бас әріппен жазылуы керек.

Егер мәтін көлемі аз болса, операцияны қолмен жасауға болады, бірақ ұяшықтардың саны ондаған, одан да көп жүздеген және мыңдаған болса, тапсырма тез орындалмайды.

Сонымен Excel бағдарламасында ұяшықтың бірінші әрпін бас әріппен жазу үшін тапсырманы қалай автоматтандыруға және формуланы қолдануға болады?

Болжамдар санына байланысты мәселені бірнеше жолмен шешуге болады, оларды қарапайымнан күрделіге қарай қарастырыңыз.

Ұяшықтың бірінші таңбасын бас әріппен жазыңыз

Тақырыптан болжағаныңыздай, формула негізделген болжам:

Ұяшықтың бірінші таңбасы әрқашан әріп болып табылады. Ал олай болмаса, одан кейінгі әріптердің ісі бізді алаңдатпайды.

Бұл болжаммен тапсырма өте қарапайым болады – біз ұяшықтан бірінші таңбаны кесіп тастаймыз, оны UPPER функциясымен бас әріпке түрлендіреміз және оны жолға қайтарамыз. Ұяшықтан бірінші таңбаны әртүрлі жолдармен алуға болады, ең қарапайымы LEFT функциясымен:

=ЛЕВСИМВ(A1;1)

Қалған мәтінді MID функциясымен шығаруға болады және жалпы формула келесідей болады:

=ПРОПИСН(ЛЕВСИМВ(A1;1))&ПСТР(A1;2;ДЛСТР(A1))

Сіз REPLACE функциясын пайдаланып сөздің қалған бөлігін шығармай жасай аласыз:

=ЗАМЕНИТЬ(A1;1;1;ПРОПИСН(ЛЕВСИМВ(A1;1))

Бірінші сөздің бірінші әрпін бас әріппен жаз

Бұл жоғарыдағы опциямен бірдей емес пе? Сіз сұрайсыз және ішінара дұрыс боласыз, бірақ кейде ұяшықтың бірінші белгісі әріп емес.

Бұл жақшалар, әртүрлі нұсқаларындағы тырнақшалар, эллипс және басқа тыныс белгілері болуы мүмкін.

Мұндай жағдайларда жоғарыдағы формулалар жұмыс істемейді – олар бұл белгіні қабылдайды, оның жағдайын өзгерту әрекеті ештеңені өзгертпейді және оны қайтарады.

Содан кейін біз күрделірек болжам жасаймыз:

Жолдағы бірінші әріп әрқашан бірінші сөзде болады.
Ресми түрде тыныс белгілері бірінші сөздің бөлігі емес. Бірақ тапсырма жолдан тек бірінші сөзді алу болса, бірінші бос орынға дейінгі барлық таңбалар бірінші сөз болып саналады.

Дәл осы олқылықты іздеу арқылы мәселе шешіледі.

Міне, толық формула. Оның жұмыс принципінің егжей-тегжейлі сипаттамасы мына жерде: ТҰРАҚ функция.

=ЕСЛИОШИБКА(ПРОПНАЧ(ЛЕВСИМВ(A1;ПОИСК(" ";A1)-1)) & ЗАМЕНИТЬ(A1;1;ПОИСК(" ";A1);" ");ПРОПНАЧ(A1))

Бұл функцияның сұлулығы оның тыныс белгілерін (сонымен қатар сандарды және басқа әліпбилік емес таңбаларды) елемейді және сөздердің бірінші әрпін бас әріппен жазады. Бұл формулада біз оған мұны тек бір, бірінші сөзбен орындауды айтамыз.

Ұяшықтағы бірінші әріптің орнын табыңыз

Жоғарыдағы формулалардың сипаттамасында айтылғандай, олар идеалды емес, өйткені. белгілі бір болжамдарға сүйенеді.

Егер біз шынымен ұяшықтың бірінші әрпін, басқаша айтқанда, әріп болып табылатын ұяшықтың бірінші таңбасын бас әріппен жазғымыз келсе, алдымен оның орнын есептеуіміз керек.

Бірінші кириллица немесе латын таңбасының орны

Егер сіз қайтадан жорамал жасай бастасаңыз және тек кириллица немесе латын әріптерін әріп ретінде қарастырсаңыз, ІЗДЕУ функциясы бар массив формулалары көмектеседі.

Формулалар латын әліпбиін орыс мәтінінде (мақаладағы формулалар) немесе керісінше табу қажет болғанда қолданылатындарға өте ұқсас.

Ерекшелік мынада, ол COUNT емес, MIN пайдаланылады, себебі тапсырма сандарды санау және нәтижені нөлмен салыстыру емес, кейіпкердің орны болатын ең аз санды табу.

Бірінші латын таңбасының орнын табу формуласы:

{=МИН(ЕСЛИОШИБКА(ПОИСК(СИМВОЛ(СТРОКА(65:90));A1);""))}

Осыған ұқсас тек кириллица әліпбиін әріп ретінде қарастырады:

{=МИН(ЕСЛИОШИБКА(ПОИСК(СИМВОЛ(СТРОКА(192:223));A1);"");ЕСЛИОШИБКА(ПОИСК("ё";A1);""))}

«ё» таңбасының орны бөлек ізделетінін ескеріңіз, өйткені ол таңбалардың үздіксіз ауқымында емес. Бұл туралы толығырақ SYMBOL функциясының сипаттамасынан оқи аласыз.

Ал, кириллица мен латын әріптерін әріп ретінде қарастыратын жалпы формула:

{=МИН(ЕСЛИОШИБКА(ПОИСК(СИМВОЛ(СТРОКА(65:90));A1);"");ЕСЛИОШИБКА(ПОИСК(СИМВОЛ(СТРОКА(192:223));A1);"");ЕСЛИОШИБКА(ПОИСК("ё";A1);""))}

Сіз байқағандай, барлық формулаларда IFERROR функциясы бар – ол MIN функциясы массивтерді өңдеу кезінде қатені қайтармауы үшін қажет.

Кез келген тілдегі бірінші әріптің орны

Сіз байқағандай, жоғарыдағы таңбалар ауқымы регистрді өзгерте алатын барлық алфавиттегі барлық әріптерді түгелдей алмайды. Сондықтан мұндай болжамдар басқа тілдердегі мәтіндерде сәтсіздікке ұшырайды.

Жолдың бірінші әрпін табуға және оны бас әріппен жазуға мүмкіндік беретін формула бар ма, егер ол негізінен кіші әріппен жазылса және бас әріпке ауыстырылса?

Жауап иә, мұндай формула бар! Және ол әріптердің дәл осы қасиетін пайдаланады. Олар басқа таңбалардан айырмашылығы регистрді өзгерте алады – сандар, тыныс белгілері және басқа белгілер.

Олардың айырмашылығы, регистрді өзгерткенде, олар шын мәнінде UNICODE кестесінің басқа символына айналады және оны EXACT функциясымен немесе UNICODE функциясының өзімен оңай тексеруге болады.

Сонымен формулалар:

Біріншісі салыстыру үшін EXACT пайдаланады:

{=ПОИСКПОЗ(ЛОЖЬ;СОВПАД(ПСТР(СТРОЧН(A1);СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1)));1);ПСТР(ПРОПИСН(A1);СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1)));1));0)}

Екіншісі – ЮНИКОД:

{=МИН(ЕСЛИ(UNICODE(ПРОПИСН(ПСТР(A1;СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1)));1)))<>UNICODE(СТРОЧН(ПСТР(A1;СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1)));1)));СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1)));""))}

Бұл массив формулалары, олар Ctrl + Shift + Enter пернелерін басу арқылы бұйра жақшаларсыз енгізіледі – содан кейін формулада бұйра жақшалар пайда болады.

Формулалар күрделі және қиын болып көрінуі мүмкін, бірақ олар бірінші әріптің орнын ымырасыз табу үшін бүгінгі күні Excel ұсынатын ең жақсысы болып көрінеді.

Кез келген бірінші әріпті бас әріппен жазыңыз

Осылайша, біз армандаған мақсатымызды орындайтын формулаға оңай жақындадық. А1 ұяшығының бірінші әрпін шынымен бас әріппен жазыңыз.

Шын мәнінде, бұл REPLACE функциясы мен MID негізіндегі формула.

REPLACE функциясы мәтінді белгілі бір орынға ауыстырады, MID оны негізінде шығарады, ал UPPER оны бас әріппен жасайды:

=ЗАМЕНИТЬ(A1;ПОЗИЦИЯ;1;ПРОПИСН(ПСТР(A1;ПОЗИЦИЯ;1)))

Бірақ POSITION сөзінің орнына дәл сол орынды табу үшін алдыңғы бөлімдегі формула қолданылады.

Міне, соңғы формула:

{=ЗАМЕНИТЬ(A1;ПОИСКПОЗ(ЛОЖЬ;СОВПАД(ПСТР(СТРОЧН(A1);СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1)));1);ПСТР(ПРОПИСН(A1);СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1)));1));0);1;ПРОПИСН(ПСТР(A1;ПОИСКПОЗ(ЛОЖЬ;СОВПАД(ПСТР(СТРОЧН(A1);СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1)));1);ПСТР(ПРОПИСН(A1);СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1)));1));0);1)))}

Таңдалған ұяшықтардың бірінші әріптерін бір рет басу арқылы бас әріппен жазыңыз

Жоғарыдағы формула мәселені шешеді. Бірақ ұяшықта бірнеше сөйлем болса және олардың әрқайсысын бас әріппен жазу керек болса, онда шешім мүлде жоқ.

Жоғарыда көрсетілгендей ұзын формулалары бар мәтіндік құжатты алып жүрмеу үшін мәселені бір рет басу арқылы шешуге мүмкіндік беретін Excel қондырмаларын пайдалануға болады.

Бұл менің !SEMTools қондырмасы.

Ол ауқымды массив формулаларын және функциялардың басқа күрделі комбинацияларын болдырмауға, қосымша бағандарды жасауға және қажетті нәтижеге қол жеткізгеннен кейін оларды жоюға мүмкіндік береді.

Басқаша айтқанда, мәтінмен жұмыс істеу кезінде уақыт пен жүйкені үнемдеуге мүмкіндік береді. Оның 500-ден астам түрлі процедуралары бар, олардың бірі сөйлемдердің бірінші әріптерін бас әріптерге аудару:

semtools-sentence-case-ru