Как вывести значение между символами в Excel с помощью регулярных выражений
Получая выгрузки по содержимому utm_меток мы получаем длинный список значений, которые необходимо обработать перед использованием в аналитике. Обрабатывать можно разными способами, но я чаще всего использую регулярные выражения.
Например есть вот такой список utm_меток выгруженных из ad_content Гугл Аналитикса. Цель вытащить из них id объявлений, чтобы в дальнейшем построить отчёт по их эффективности до kpi конверсий.
Нужный нам 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| |
А также прикрепляю ссылку на сервис проверки регулярных выражений.