Як отримати слово після останнього пробілу, excel для всіх

Отримати слово до першого пробілу досить просто:
= ПСТР (A1; 1; ШУКАТИ ( ""; A1) -1)
Але куди частіше складності виникають з отриманням слова (символи), що знаходиться на певній позиції між пропуском. Я беру в якості прикладу пробіл, але насправді це може бути абсолютно будь-який символ. Наприклад, для отримання другого слова (тобто. Слова між першим пропуском і третім), можна скласти таку формулу:
= ПСТР (A1; ШУКАТИ ( ""; A1) +1; ШУКАТИ ( ""; A1; ШУКАТИ ( ""; A1) +1) -Знайти ( ""; A1) -1)
На мій погляд, виглядає дещо закручено, хоча все гранично просто:

  • ШУКАТИ ( ""; A1) +1 - шукаємо позицію першого пробілу;
  • ШУКАТИ ( ""; A1; ШУКАТИ ( ""; A1) +1) - шукаємо позицію другого пробілу і потім з цієї позиції віднімаємо позицію першого пробілу (-Знайти ( ""; A1)).

Але є проблема - якщо другого пробілу немає, то формула видасть помилку # значить !. Тоді доведеться ще й перевірку на помилку робити, що явно не додасть формулою елегантності. Тому я вважаю за краще використовувати таку формулу:
= ПІДСТАВИТИ (ПРАВСИМВ (ПСТР ( "" ПІДСТАВИТИ (A1; ""; ПОВТОР ( ""; 999)); 1; 999 * 2); 999); ""; "")
На перший погляд куди кошмарний, ніж перша. Але у неї є ряд переваг:
вона не потребує перевірки на відсутність пробілів;
зміною одного числа можна отримати не друге, а 3-е, 4-е і т.д. слово.
Розберемо найголовніше: щоб отримати перше слово від початку рядка, потрібно в блоці 999 * 2 замінити 2 на 1:
= ПІДСТАВИТИ (ПРАВСИМВ (ПСТР ( "" ПІДСТАВИТИ (A1; ""; ПОВТОР ( ""; 999)); 1; 999 * 1); 999); ""; "")
Щоб отримати 5-е - на 5:
= ПІДСТАВИТИ (ПРАВСИМВ (ПСТР ( "" ПІДСТАВИТИ (A1; ""; ПОВТОР ( ""; 999)); 1; 999 * 5); 999); ""; "")
Якщо раптом прогалин буде меншою за вказану кількість - то ми отримаємо слово після останнього пробілу (тобто перше слово з кінця рядка).
Як це працює: за допомогою функції ПІДСТАВИТИ ми замінюємо всі прогалини в тексті на 999 прогалин (число може бути менше 999, але не повинно бути менше довжини початкового рядка). Далі за допомогою функції ПСТР ми висмикуємо перші 999 символів, помножені на число, що позначає необхідне нам слово (999 * 1 - перше). По суті тільки ту кількість слів, яке зазначено (в даному випадку одне - 999 * 1). Потім функція ПРАВСИМВ повертає нам тільки останнє слово - тобто потрібне нам. А далі та ж ПІДСТАВИТИ прибирає зайві тепер прогалини, замінюючи їх все на порожній рядок - "".
Начебто досягли того, що нам потрібно було. Але раптом необхідно отримати друге слово з кінця рядка? Як тоді бути? Вважати прогалини? А якщо у нас їх штук 50 хоча б? Можна використовувати якусь модифікацію наявної формули:
= ПІДСТАВИТИ (ПСТР (ПРАВСИМВ ( "" ПІДСТАВИТИ (A1; ""; ПОВТОР ( ""; 999)); 999 * 1); 1; 999); ""; "")
Принцип той же: якщо в блоці 999 * 1 замінити 1 на 5, то отримаємо 5-е слово з кінця рядка.
Якщо необхідно висмикувати слова по прогалин, то краще доповнити ще однією функцією - СЖПРОБЕЛИ:
= ПІДСТАВИТИ (ПРАВСИМВ (ПСТР ( "" ПІДСТАВИТИ (СЖПРОБЕЛИ (A1); ""; ПОВТОР ( ""; 999)); 1; 999 * 1); 999); ""; "")
= ПІДСТАВИТИ (ПСТР (ПРАВСИМВ ( "" ПІДСТАВИТИ (СЖПРОБЕЛИ (A1); ""; ПОВТОР ( ""; 999)); 999 * 1); 1; 999); ""; "")

Так само можна "витягнути" певну кількість слів:
= СЖПРОБЕЛИ (ПСТР (ПРАВСИМВ ( "" ПІДСТАВИТИ (A1; ""; ПОВТОР ( ""; 999)); 999 * 3); 1; 999 * 2))
3 - третє слово з кінця рядка.
2 - кількість слів.

  • Як отримати слово після останнього пробілу, excel для всіх
  • Як отримати слово після останнього пробілу, excel для всіх
  • Як отримати слово після останнього пробілу, excel для всіх
  • Як отримати слово після останнього пробілу, excel для всіх
  • Як отримати слово після останнього пробілу, excel для всіх
  • Як отримати слово після останнього пробілу, excel для всіх
  • Як отримати слово після останнього пробілу, excel для всіх
  • Як отримати слово після останнього пробілу, excel для всіх
  • Як отримати слово після останнього пробілу, excel для всіх
  • Як отримати слово після останнього пробілу, excel для всіх
  • Як отримати слово після останнього пробілу, excel для всіх

Пошук по мітках

дмитрий Вибачте за доповнення. Просто спливав таке питання ось і вирішив додати до вашого уроку.