Знайти позицію останнього появи символу в Excel

У цьому посібнику ви дізнаєтесь, як знайти позицію останнього входження символу в рядку в Excel.

Кілька днів тому колега придумав цю проблему.

Він мав список URL -адрес, як показано нижче, і йому потрібно було вилучити всі символи після останньої косої риски (“/”).

Так, наприклад, з https://example.com/archive/Січня йому довелося витягнути «січень».

Було б дуже легко, якби в URL -адресах була лише одна коса риска.

Він мав величезний тисячний список URL-адрес різної довжини та різну кількість косих рисок.

У таких випадках хитрість полягає в тому, щоб знайти позицію останнього входження косої риски в URL -адресі.

У цьому уроці я покажу вам два способи зробити це:

  • За допомогою формули Excel
  • Використання користувацької функції (створено за допомогою VBA)

Отримання останньої позиції символу за допомогою формули Excel

Коли у вас є місце останнього входження, ви можете просто витягнути все праворуч від нього за допомогою функції ВПРАВО.

Ось формула, яка знайде останню позицію косої риски вперед і витягне весь текст праворуч від неї.

= ВПРАВО (A2, LEN (A2) -FIND ("@", SUBSTITUTE (A2, "/", "@", LEN (A2) -LEN (SUBSTITUTE (A2, "/", ""))) 1 )) 

Як працює ця формула?

Давайте розберемо формулу та пояснимо, як працює кожна її частина.

  • ЗАМІНА (A2, ”/”,“”) - Ця частина формули замінює косу риску вперед порожнім рядком. Так, наприклад, якщо ви хочете знайти входження будь -якого рядка, окрім косої риски, використовуйте це тут.
  • LEN (A2) -LEN (ЗАМІНА (A2, ”/”,“”)) - Ця частина розповість вам, скільки косих рисок у рядку. Він просто віднімає довжину рядка без косої риски вперед від довжини рядка з косими рисами вперед.
  • ЗАМІНА (A2, ”/”, ”@”, LEN (A2) -LEN (ЗАМІНА (A2, ”/”, ””))) - Ця частина формули замінить останню косу косу риску на @. Ідея полягає в тому, щоб зробити цього персонажа унікальним. Ви можете використовувати будь -який символ. Просто переконайтесь, що він унікальний і вже не з’являється у рядку.
  • ЗНАЙТИ (“@”, ЗАМІНА (A2, ”/”, ”@”, ОБ’ЄКТИВ (A2) -ЛЕН (ЗАМІНА (A2, ”/”, ””))), 1) - Ця частина формули дасть вам позицію останньої косої риски.
  • LEN (A2) -FIND (“@”, SUBSTITUTE (A2, ”/”, ”@”, LEN (A2) -LEN (SUBSTITUTE (A2, ”/”, ””))), 1) - Ця частина формули розповість нам, скільки символів є після останньої косої риски.
  • = ВПРАВО (A2, LEN (A2) -FIND (“@”, SUBSTITUTE (A2, ”/”, ”@”, LEN (A2) -LEN (SUBSTITUTE (A2, ”/”, ””))) 1 )) - Тепер це просто дасть нам рядок після останньої косої риски.

Отримання останньої позиції символу за допомогою користувацької функції (VBA)

Хоча вищенаведена формула чудова і працює як чарівність, це трохи складно.

Якщо вам зручно користуватися VBA, ви можете використовувати користувацьку функцію (також звану функцією, визначеною користувачем), створену за допомогою VBA. Це може спростити формулу та заощадити час, якщо вам доведеться робити це часто.

Давайте використаємо той самий набір даних URL -адрес (як показано нижче):

Для цього випадку я створив функцію під назвою LastPosition, яка знаходить останню позицію зазначеного символу (що в цьому випадку є косою рискою).

Ось формула, яка дозволить це зробити:

= ПРАВО (A2, LEN (A2) -Остання позиція (A2, "/")+1)

Ви можете побачити, що це набагато простіше, ніж той, який ми використовували вище.

Ось як це працює:

  • LastPosition - наша спеціальна функція - повертає позицію косої риски. Ця функція приймає два аргументи - посилання на клітинку з URL -адресою та символ, позицію якого нам потрібно знайти.
  • Потім функція RIGHT дає нам усі символи після косої риски.

Ось код VBA, який створив цю функцію:

Функція LastPosition (rCell As Range, rChar As String) 'Ця функція дає останню позицію зазначеного символу' Цей код був розроблений Sumit Bansal (https://trumpexcel.com) Dim rLen As Integer rLen = Len (rCell) For i = rLen To 1 Step -1 If Mid (rCell, i - 1, 1) = rChar Тоді LastPosition = i Вихід із функції End Якщо далі Функція i End

Щоб ця функція працювала, її потрібно розмістити у редакторі VB. Після цього ви можете використовувати цю функцію, як і будь -яку іншу звичайну функцію Excel.

Нижче наведено кроки, щоб скопіювати та вставити цей код у бекенд VB:

Ось кроки, щоб розмістити цей код у редакторі VB:

  1. Перейдіть на вкладку Розробник.
  2. Натисніть на опцію Visual Basic. Це відкриє редактор VB у бекенді.
  3. На панелі «Провідник проектів» у редакторі VB клацніть правою кнопкою миші будь-який об’єкт книги, до якого потрібно вставити код. Якщо ви не бачите Провідник проектів, перейдіть на вкладку Вигляд і натисніть Провідник проектів.
  4. Перейдіть до пункту Вставити та натисніть Модуль. Це додасть об’єкт модуля до вашої книги.
  5. Скопіюйте та вставте код у вікно модуля.

Тепер формула буде доступна на всіх аркушах робочої книги.

Зауважте, що вам потрібно зберегти книгу у форматі .XLSM, оскільки вона містить макрос. Крім того, якщо ви хочете, щоб ця формула була доступною у всіх робочих книгах, які ви використовуєте, ви можете або зберегти її у книзі «Особистий макрос», або створити надбудову з неї.

Вам також можуть сподобатися такі підручники Excel:

  • Як отримати кількість слів у Excel.
  • Як використовувати VLOOKUP з кількома критеріями.
  • Знайдіть останній випадок значення пошуку в списку в Excel.
  • Видобування підрядка в Excel.

Ви допоможете розвитку сайту, поділившись сторінкою з друзями

wave wave wave wave wave