Зміст
При роботі з неструктурованими текстовими даними на робочих аркушах часто виникає необхідність їх розбору для отримання необхідної інформації. У цій статті ви дізнаєтеся про декілька простих способів видалення будь-якої кількості символів з лівого або правого боку текстового рядка.
Як видалити символи зліва в Excel
Видалення перших символів з рядка - одна з найпоширеніших задач в Excel, і виконати її можна за допомогою 3 різних формул.
Видалення першого символу в Excel
Для видалення першого символу з рядка можна використовувати або функцію REPLACE, або комбінацію функцій RIGHT і LEN.
REPLACE( рядок , 1, 1, "")Тут ми просто беремо 1 символ з першої позиції і замінюємо його на порожній рядок ("").
ТАК. рядок , LEN( рядок ) - 1)У цій формулі ми використовуємо функцію LEN для обчислення загальної довжини рядка і віднімаємо від неї 1 символ. Різниця подається вправо, тому вона витягує стільки-то символів з кінця рядка.
Наприклад, для видалення першого символу з комірки А2 формули виглядають наступним чином:
=REPLACE(A2, 1, 1, "")
=RIGHT(A2, LEN(A2) - 1)
Видалити символи зліва
Для видалення початкових символів з лівого боку рядка також використовуються функції REPLACE або RIGHT і LEN, але при цьому слід вказувати, скільки символів потрібно видалити кожного разу:
REPLACE( рядок , 1, num_chars , "")Або
ТАК. рядок , LEN( рядок ) - num_chars )Наприклад, вилучити перші 2 символи з рядка в комірці A2 формули:
=REPLACE(A2, 1, 2, "")
=RIGHT(A2, LEN(A2) - 2)
Для видалення перші 3 символи то формули набувають такого вигляду:
=REPLACE(A2, 1, 3, "")
=RIGHT(A2, LEN(A2) - 3)
На скріншоті нижче показана формула REPLACE в дії. При використанні RIGHT LEN результати були б точно такими ж.
Спеціальна функція видалення перших n символів
Якщо ви не проти використання мови VBA в робочих таблицях, ви можете створити власну функцію видалення символів з початку рядка, назвавши її RemoveFirstChars Код функції дуже простий:
Function RemoveFirstChars(str As String , num_chars As Long ) RemoveFirstChars = Right(str, Len(str) - num_chars) End FunctionПісля введення коду в робочу книгу (детальна інструкція тут), ви можете видалити перші n символів з даної комірки за допомогою цієї компактної та інтуїтивно зрозумілої формули:
RemoveFirstChars(string, num_chars)Наприклад, видалити перший символ з рядка в A2, то формула в B2 буде такою:
=RemoveFirstChars(A2, 1)
Роздягатися перші два символів з А3, то формула в В3 буде такою:
=RemoveFirstChars(A4, 2)
Видалити перші три символів з формату А4, формула у форматі В4:
=RemoveFirstChars(A4, 3)
Більше про Використання користувацьких функцій в Excel.
Як прибрати символи справа
Для видалення символів з правого боку рядка також можна скористатися нативними функціями або створити власну.
Видалення останнього символу в Excel
Для видалення останнього символу в комірці використовується загальна формула:
LEFT( рядок , LEN( рядок ) - 1)У цій формулі ви віднімаєте 1 від загальної довжини рядка і передаєте різницю функції LEFT, щоб вона витягла цю кількість символів з початку рядка.
Наприклад, щоб видалити останній символ з комірки А2, формула в комірці В2 має вигляд:
=LEFT(A2, LEN(A2) - 1)
Видалити символи справа
Для видалення заданої кількості символів з кінця комірки використовується загальна формула:
LEFT( рядок , LEN( рядок ) - num_chars )Логіка така ж, як і у наведеній вище формулі, і нижче наведемо кілька прикладів.
Для того, щоб видалити останні 3 символи використовуйте 3 для num_chars :
=LEFT(A2, LEN(A2) - 3)
Видалити з реєстру останні 5 символів постачання 5 для num_chars :
=LEFT(A2, LEN(A2) - 5)
Користувацька функція для видалення останніх n символів в Excel
Якщо ви хочете мати власну функцію для видалення будь-якої кількості символів справа, додайте цей VBA-код у свою робочу книгу:
Function RemoveLastChars(str As String , num_chars As Long ) RemoveLastChars = Left(str, Len(str) - num_chars) End FunctionФункція має назву RemoveLastChars і його синтаксис навряд чи потребує пояснень:
RemoveLastChars(string, num_chars)Для того, щоб випробувати його в польових умовах, давайте позбудемося останній символ в А2:
=RemoveLastChars(A2, 1)
Крім того, ми видалимо останні 2 символи з правого боку рядка формату А3:
=RemoveLastChars(A3, 2)
Видалити з реєстру останні 3 символи з комірки А4 формула має вигляд:
=RemoveLastChars(A4, 3)
Як ви можете бачити на скріншоті нижче, наша кастомна функція працює блискуче!
Як видалити символи відразу справа і зліва
У ситуації, коли потрібно стерти символи з обох сторін рядка, можна або послідовно запустити обидві наведені вище формули, або оптимізувати роботу за допомогою функції MID.
MID( рядок , лівий _ символи + 1, LEN( струна ) - ( лівий _ символи + правильно _ символи )Де:
- chars_left - кількість символів, які потрібно видалити зліва.
- chars_right - кількість символів, які потрібно видалити справа.
Припустимо, ви хочете витягти ім'я користувача з рядка на зразок mailto:[email protected] Для цього потрібно видалити частину тексту з початку ( mailto: - 7 символів) і з кінця ( @gmail.com - 11 знаків).
Підставити у формулу наведені вище числа:
=MID(A2, 7+1, LEN(A2) - (7+10))
...і результат не змусить себе чекати:
Щоб зрозуміти, що тут насправді відбувається, згадаємо синтаксис функції MID, яка використовується для витягування підрядка певного розміру з середини вихідного рядка:
MID(text, start_num, num_chars)На сьогоднішній день, на жаль, це не так. текст аргумент не викликає ніяких питань - це вихідний рядок (у нашому випадку A2).
Щоб отримати позицію першого символу для вилучення ( start_num ), ви додаєте 1 до кількості символів, які потрібно викреслити зліва (7+1).
Щоб визначити, скільки символів потрібно повернути ( num_chars ), підраховується загальна кількість видалених символів (7 + 11) і сума віднімається від довжини всього рядка: LEN(A2) - (7+10)).
Отримайте результат у вигляді числа
Яку б з наведених вище формул ви не використовували, на виході завжди буде текст, навіть якщо значення, що повертається, містить тільки числа. Для того, щоб повернути значення результат у вигляді числа або обернути основну формулу у функцію VALUE, або виконати якусь математичну операцію, яка не впливає на результат, наприклад, помножити на 1 або додати 0. Цей прийом особливо корисний, коли ви хочете обчислити результати в подальшому.
Припустимо, ви видалили перший символ з комірок A2:A6 і хочете підсумувати отримані значення. Дивно, але тривіальна формула SUM повертає нуль. Чому? Очевидно, тому що ви складаєте рядки, а не числа. Виконайте одну з наведених нижче операцій, і проблема буде вирішена!
=VALUE(REPLACE(A2, 1, 1, ""))
=RIGHT(A2, LEN(A2) - 1) * 1
=RemoveFirstChars(A2, 1) + 0
Видалити перший або останній символ за допомогою Flash Fill
В Excel 2013 і більш пізніх версіях є ще один простий спосіб видалення першого і останнього символів в Excel - функція Flash Fill.
- У комірці, суміжній з першою коміркою з вихідними даними, введіть бажаний результат, опускаючи перший або останній символ з вихідного рядка, і натисніть клавішу Enter .
- Почніть вводити очікуване значення в наступну комірку. Якщо Excel відчує закономірність у даних, які ви вводите, він буде дотримуватися тієї ж закономірності в інших комірках і відобразить попередній перегляд ваших даних без першого / останнього символу.
- Просто натисніть клавішу Enter, щоб прийняти попередній перегляд.
Видалення символів за позицією з Ultimate Suite
Традиційно, користувачі нашого Ultimate Suite можуть впоратися із завданням в кілька кліків, не запам'ятовуючи при цьому купу різноманітних формул.
Щоб видалити з рядка перші або останні n символів, потрібно зробити наступне:
- Про це йдеться на Дані про абіти у вкладці Текст групу, натисніть Видалити > Видалити за позицією .
Наприклад, для видалення першого символу налаштовуємо наступну опцію:
Ось так можна видалити підрядок зліва або справа в Excel. Дякую за прочитання і з нетерпінням чекаю зустрічі в нашому блозі на наступному тижні!
Доступні для завантаження
Видалення перших або останніх символів - приклади (файл .xlsm)
Ultimate Suite - пробна версія (файл .exe)