Формула на Excel: Премахване на последната дума -

Съдържание

Обща формула

=MID(A1,1,FIND("~",SUBSTITUTE(A1," ","~",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))))-1)

Обобщение

За да премахнете последната дума от текстов низ, можете да използвате формула, базирана на функцията MID, с помощта на SUBSTITUTE, LEN и FIND. В показания пример формулата в клетка B5 е:

=MID(B5,1,FIND("~",SUBSTITUTE(B5," ","~",LEN(B5)-LEN(SUBSTITUTE(B5," ",""))))-1)

Обяснение

Тази формула използва функцията MID за премахване на последната дума от текстов низ. Основното предизвикателство е да разберете къде започва последната дума.

Формулата е малко объркана, но стъпките са прости. Първо броим колко интервали съществуват в текста, като използваме LEN и SUBSTITUTE. След това използваме малко неясния аргумент "instance" във функцията SUBSTITUTE, за да заменим последното интервал с тилда (~). И накрая, използваме FIND, за да разберем къде е тилдата и функцията MID, за да изхвърлим всичко след тилдата.

Работейки отвътре навън, ние използваме функциите LEN и SUBSTITUTE, за да преброим колко интервали се появяват в следващия:

LEN(B5)-LEN(SUBSTITUTE(B5," ","")) // returns 6

За текста в B5 това връща 6. Тази страница обяснява тази част от формулата по-подробно. Това ни казва, че искаме да намалим текста на 6-ия интервал.

Забележка: ако думите са разделени от повече от едно интервал, първо ще искате да нормализирате интервалите с функцията TRIM.

След това числото 6 се включва в друг ЗАМЕСТИТЕЛ като "номер на екземпляр":

SUBSTITUTE(B5," ","~",6) // insert tilde

Тук заместваме 6-ия екземпляр на интервал ("") с тилда (~). След като SUBSTITUTE стартира, той връща този низ:

"It's been seven hours and fifteen~days"

Забележка: ние използваме тилда (~) само защото това е рядко срещан знак. Можете да използвате всеки символ, който ви харесва, стига да не се появява в изходния текст.

След това използваме функцията FIND за намиране на тилдата:

FIND("~","It's been seven hours and fifteen~days")-1

FIND връща 34, тъй като тилдата е 34-и знак. Изваждаме 1 от това число, защото не искаме да включваме последното интервал в крайния резултат. Вече можем да опростим формулата, за да:

=MID(B5,1,33) // extract final text

След това функцията MID връща символи 1-33:

"It's been seven hours and fifteen"

С персонализиран разделител

Същата формула може да се използва с различен разделител. Например, за да премахнете целия текст след последната наклонена черта "/", можете да използвате:

=MID(A1,1,FIND("~",SUBSTITUTE(A1,"/","~",LEN(A1)-LEN(SUBSTITUTE(A1,"/",""))))-1)

Премахнете последните n думи

Можете да адаптирате формулата, за да премахнете последните 2 думи, последните 3 думи и т.н. Общата форма е:

=MID(A1,1,FIND("~",SUBSTITUTE(A1,d,"~",LEN(A1)-LEN(SUBSTITUTE(A1,d,""))-(n-1)))-1)

където d е разделителят, а n е броят на думите за премахване.

Интересни статии...