Как вывести значение между символами в Excel с помощью регулярных выражений

Как вывести значение между символами в Excel с помощью регулярных выражений

16.09.2021 0 Автор pavezlo

Получая выгрузки по содержимому utm_меток мы получаем длинный список значений, которые необходимо обработать перед использованием в аналитике. Обрабатывать можно разными способами, но я чаще всего использую регулярные выражения.

Например есть вот такой список utm_меток выгруженных из ad_content Гугл Аналитикса. Цель вытащить из них id объявлений, чтобы в дальнейшем построить отчёт по их эффективности до kpi конверсий.

Пример выгрузки ad_content по разным источникам из Гугл Аналитикса

Нужный нам id объявлений хранится между нескольких элементов. В Яндексе это |aid| и |adp|.

Чтобы вытащить этот id необходимо с помощью регулярного выражения обработать эту ссылку.

Пример регулярного выражения для Яндекса

С помощью этой регулярки \|aid\|(\S+?)\|adp\| мы говорим:
\|aid\| — начни с этого текста. Символы \ экранируют настоящее значение |, т.к. без экранирования смысл у этих символов другой;
\S+? — возьми все символы кроме пробела;
\|adp\| — до этого текста.

Чтобы сделать аналогичную операцию в Гугл Таблицах используем функцию REGEXEXTRACT.

И на выходе получаем чистый id, по которому можно будем связать расходы из рекламных площадок.

Обратите внимание на то, что в формуле я фильтрую условие по источнику, т.к. utm_метки были записаны по разному и текст нужно выводить между разными элементами.

Я подготовил на основе своего примера разные варианты вывода, но по хорошему нужно фиксить эту проблему на этапе формирования utm_меток, чтобы по одному регулярному выражению получать сразу по всем источникам нужные данные.

\|aid\|(\S+?)\|adp\|яндекс4581056828_10762810146_desktop_|pid|32173035084_|cid|62340136|gid|4581056828|aid|10762810146|adp|no|pos|premium1|src|search_none|dvc|desktop
\|aid\|(\S+?)\|pos\|фбcid|23848805094380332|gid|23848805094360332|aid|23848805186850332|pos|Facebook_Right_Column|adn|fb
\|aid\|(\S+?)\|gid\|гугл|pid|kwd-902197508079|cid|13327074478|aid|524922003015|gid|125757829409|pos||src|g_|dvc|c|reg|20955|rin|
advertiser-id\|(\S+?)_мтadvertiser-id|10953064_campaign-id|44313940_campaign-name|mt_v_cpv_traf_msk_re_all_all_advanced_banner-id|93856956_geo_id|5506_gender|f_age|59_weekday|wed_hour|00_user-timezone| 3_search-phrase|
ad-id\|(\S+?)_вкcampaign-id|1018743605_campaign-name|vk_target_brand_rus_vk-post_ad-id|99167670_client-id|1606794093_platform|android_keyword|

А также прикрепляю ссылку на сервис проверки регулярных выражений.