Зміст
Наступний розділ про роботу з текстом в електронних таблицях присвячений вилученню. Дізнайтеся про способи вилучення різних даних - тексту, символів, чисел, URL-адрес, адрес електронної пошти, дати і часу і т.д. - з різних позицій відразу в декількох комірках Google Таблиць.
Формули Google Sheets для вилучення тексту і чисел з рядків
Формули в таблицях Google - це все. Якщо деякі комбінації додають текст і цифри та видаляють різні символи, то деякі з них також витягують текст, цифри, окремі символи тощо.
Витягнути дані по позиції: перші/останні/середні N символів
Найпростішими функціями, з якими можна мати справу, коли ви збираєтеся витягти дані з комірок Google Sheets, є LEFT, RIGHT і MID. Вони отримують будь-які дані за позицією.
Вилучення даних з початку комірок в Google Таблицях
Ви можете легко витягнути перші N символів за допомогою функції LEFT:
LEFT(string,[кількість_символів])- рядок текст, з якого потрібно витягти дані.
- кількість_символів кількість символів, які потрібно видалити, починаючи зліва.
Наведемо найпростіший приклад: приберемо з телефонних номерів коди країн:
Як бачите, коди країн займають 6 символів на початку клітинок, тому формула, яка вам потрібна, має такий вигляд:
=LEFT(A2,6)
Порада: функція ArrayFormula дозволить отримати одразу 6 символів з усього діапазону:
=ArrayFormula(LEFT(A2:A7,6))
Витяг даних з кінця комірок в Google Таблицях
Щоб витягнути останні N символів з комірок, використовуйте функцію RIGHT:
RIGHT(рядок,[кількість_символів])- рядок це все ще текст (або посилання на комірку), з якого потрібно витягти дані.
- кількість_символів також є кількістю символів, які потрібно взяти справа.
Давайте візьмемо, що назви країн з тих самих телефонних номерів:
Вони займають всього 2 знаки, і саме це я згадую у формулі:
=RIGHT(A2,2)
Порада: ArrayFormula також допоможе вам витягти дані з кінця всіх комірок Google Sheets відразу:
=ArrayFormula(RIGHT(A2:A7,2))
Вилучення даних з середини клітинок в Google Таблицях
Якщо є функції для вилучення даних з початку і кінця комірок, то повинна бути і функція для вилучення даних з середини. І так - вона є.
Він називається MID:
MID(string, starting_at, extract_length)- рядок - текст, з якого потрібно вирізати середню частину.
- починаючи з - позиція символу, з якої потрібно почати отримувати дані.
- довжина_витягу - кількість символів, які потрібно витягнути.
На прикладі тих же телефонних номерів знайдемо самі номери телефонів без кодів країн та абревіатури країни:
Оскільки коди країн закінчуються на 6-й символ, а 7-й - це тире, то я буду витягувати цифри, починаючи з 8-ї. І всього вийде 8 цифр:
=MID(A2,8,8)
Порада. Зміна однієї комірки на весь діапазон і обернення її в ArrayFormula дозволить отримати результат відразу по кожній комірці:
=Формула масиву(MID(A2:A7,8,8))
Вилучення тексту/чисел з рядків
Іноді вилучення тексту за позицією (як показано вище) не є можливим. Необхідні рядки можуть знаходитися в будь-якій частині комірок і складатися з різної кількості символів, що змушує вас створювати різні формули для кожної комірки.
Але Google Таблиці не були б Google Таблицями, якби в них не було інших функцій, які допомагають витягувати текст з рядків.
Розглянемо кілька можливих способів, які пропонують електронні таблиці.
Витягнути дані перед певним текстом - ВЛІВО+ПОШУК
Якщо ви хочете витягти дані, які передують певному тексту, використовуйте LEFT + SEARCH:
- ЛІВОРУЧ використовується для повернення певної кількості символів з початку комірок (зліва від них)
- ПОШУК шукає певні символи/рядки і отримує їх позицію.
Поєднайте їх - і LEFT поверне кількість символів, запропонованих ПОШУКОМ.
Наведу приклад: як витягти текстові коди перед кожним "еа"?
Це формула, яка допоможе вам у подібних випадках:
=LEFT(A2,SEARCH("ea",A2)-1)
Ось що відбувається у формулі:
- SEARCH("ea",A2) шукає 'ea' в комірці A2 і повертає позицію, з якої починається 'ea' для кожної клітинки - 10.
- Отже, на 10-й позиції знаходиться "е", але оскільки я хочу, щоб все було прямо перед "еа", мені потрібно відняти від цієї позиції 1. Інакше "е" також повернеться, і в підсумку я отримаю 9.
- ЛІВОРУЧ дивиться на A2 і отримує перші 9 символів.
Витягнути дані після тексту
Існують також засоби, що дозволяють отримати все після певного текстового рядка. Але цього разу RIGHT не допоможе. Замість нього за справу береться REGEXREPLACE.
Порада. REGEXREPLACE використовує регулярні вирази. Якщо ви не готові з ними розбиратися, є набагато простіше рішення, описане нижче. REGEXREPLACE(текст, регулярний_вираз, заміна)
- текст рядок або комірка, в яку потрібно внести зміни
- регулярний_вираз комбінація символів, що позначає частину тексту, яку ви шукаєте
- заміна це те, що ви хочете отримати замість цього текст
Отже, як з його допомогою витягти дані після певного тексту - "ea" в моєму прикладі?
Легко - за допомогою цієї формули:
=REGEXREPLACE(A2, "(.*)ea(.*)","$2")
Поясню, як саме працює ця формула:
- A2 це комірка, з якої я витягую дані.
- "(.*)ea(.*)" це мій регулярний вираз (або можна назвати його маскою). Я шукаю 'ea', а всі інші символи беру в дужки. Є 2 групи символів - все, що до 'ea' - перша група (.*), а все, що після 'ea' - друга (.*). Вся маска береться в подвійні лапки.
- "$2" це те, що я хочу отримати - другу групу (звідси її номер 2) з попереднього аргументу.
Порада. Всі символи, що використовуються в регулярних виразах, зібрані на цій спеціальній сторінці.
Витяг чисел з комірок Google Таблиць
Що робити, якщо потрібно витягти тільки числа, коли їх позиція і все, що йде до і після, не має значення?
Також допоможуть маски (вони ж - регулярні вирази). По суті, я візьму ту ж функцію REGEXREPLACE і зміню регулярний вираз:
=REGEXREPLACE(A2, "[^[:цифра:]]", "")
- A2 це комірка, з якої я хочу отримати ці числа.
- "[^[:цифра:]]" це регулярний вираз, який приймає все, крім цифр. Символ ^каретка є тим, що робить виняток для цифр.
- "" замінює все, крім числових символів, на "ніщо". Або, іншими словами, видаляє його повністю, залишаючи в комірках тільки цифри. Або, витягує цифри :)
Витягнути текст, ігноруючи цифри та інші символи
Аналогічним чином можна витягти з комірок Google Таблиць тільки літерні дані. Скорочення для регулярного виразу, що позначає текст, називається відповідно - альфа:
=REGEXREPLACE(A2, "[^[:alpha:]]", "")
Ця формула бере все, крім букв (A-Z, a-z) і буквально замінює на "ніщо". Або, інакше кажучи, забирає тільки букви.
Безформульні способи вилучення даних з комірок Google Таблиць
Якщо ви шукаєте простий спосіб вилучення різних типів даних без використання формул, ви потрапили в потрібне місце. Наш додаток Power Tools містить саме ті інструменти, які вам потрібні.
Вилучення різних типів даних за допомогою надбудов Power Tools
Перший інструмент, з яким я хотів би вас познайомити, називається "Витяг". Він робить саме те, що ви шукали в цій статті - витягує різні типи даних з комірок Google Таблиць.
Зручні налаштування
Всі випадки, які я описав вище, вирішуються не тільки за допомогою доповнення. Інструмент зручний у використанні Тому все, що вам потрібно зробити, це вибрати діапазон, який ви хочете обробити, і поставити галочки в потрібних чекбоксах. Ніяких формул, ніяких регулярних виразів.
Пам'ятаєте другий пункт цієї статті з REGEXREPLACE і регулярними виразами? Ось як все просто для доповнення:
Додаткові опції
Як бачимо, є кілька додаткові опції (тільки прапорці), що ви можете швидке вмикання/вимикання для отримання максимально точного результату:
- Отримати рядки тільки потрібного регістру тексту.
- Витягніть всі випадки з кожної клітинки і розмістіть їх в одній клітинці або в окремих стовпчиках.
- Вставити новий стовпчик з результатом праворуч від вихідних даних.
- Очистити витягнутий текст від вихідних даних.
Вилучення різних типів даних
Power Tools не тільки витягує дані до/після/між певними текстовими рядками та першими/останніми N символами, але й витягує наступне:
- Числа разом з десятковими знаками зі збереженням десяткових/тисячних роздільників:
Витягніть будь-який рядок даних звідусіль
Також є можливість налаштувати власний точний шаблон і використовувати його для вилучення. Екстракт по масці та її підстановчі символи - * і ? - роблять трюк:
- Наприклад, все, що знаходиться між дужками, можна вивести за допомогою наступної маски: (*)
- Або отримати ті SKU, які мають лише 5 цифр в ідентифікаторі: SKU?????
- Або, як я показую на скріншоті нижче, витягнути все після кожної "еа" в кожній комірці: ea*
Витягнути дату і час з міток часу
Як бонус, є менший інструмент, який витягує дату і час з міток часу - він називається Split Date & Time.
Хоча він був створений для розділення часових міток, він цілком здатний отримати одну з потрібних одиниць окремо:
Просто встановіть один з прапорців в залежності від того, що ви хочете витягти - дату або час - з міток часу в Google Таблицях і натисніть Спліт Необхідна одиниця виміру буде скопійована в новий стовпчик (або замінить вихідні дані, якщо ви також встановите останній прапорець):
Цей інструмент також є частиною надбудови Power Tools, тому, як тільки ви встановите його для отримання будь-яких даних з комірок Google Таблиць, він повністю охопить вас. Якщо ні, будь ласка, залиште коментар, і ми допоможемо вам :)