![](https://cdn.wiki-base.com/1487651/excel_formula_remove_last_word__2.png.webp)
Обща формула
=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 е броят на думите за премахване.