Если ячейка содержит»?», то формула X если нет, то скопируйте значение

#if-statement #google-sheets #find #google-sheets-formula

Вопрос:

В данный момент я занят электронной таблицей для анализа результатов по URL-адресу. Проблема в том, что когда я хочу составить список уникальных URL-адресов, URL-адреса с параметром за ними (например,»? fbads») будут рассматриваться как уникальные, вместо этого мне нужно, чтобы эти результаты смешивались с основным URL-адресом. См. Пример ниже:

https://www.holidayguru.nl/deal/accommodatie/luxe-strandvakantie-in-ijmuiden-5e25ba62-e001-4072-8eb5-b6c3b0e7e66f/?fbclid=IwA
amp;
https://www.holidayguru.nl/deal/accommodatie/luxe-strandvakantie-in-ijmuiden-5e25ba62-e001-4072-8eb5-b6c3b0e7e66f/

Должно быть и то, и другое: https://www.holidayguru.nl/deal/accommodatie/luxe-strandvakantie-in-ijmuiden-5e25ba62-e001-4072-8eb5-b6c3b0e7e66f/

Я уже исправил это с помощью формулы, но мне нужен один список со всеми URL-адресами. Поэтому я рассматриваю два варианта. Или в

=СЛЕВА(A11,НАЙТИ(«?»,A11)-1)

То, что я использую прямо сейчас, мне нужно найти способ, как я могу сказать. Если вы не найдете»?», чем просто скопируйте ячейку A11

Или…

Я должен работать с функцией if, чтобы сказать, содержит ли A11″?», чем выполнить =левая функция, в противном случае используйте A11.

Мне не удается заставить формулу работать. Демонстрационный лист ниже :). Спасибо!

Пример электронной таблицы

Ответ №1:

Удалите все из листа 1!A:A (включая заголовок) и поместите следующее в лист 1!A1:

=ArrayFormula({"UNIQUE URLS"; UNIQUE(FILTER(REGEXEXTRACT(URLs!A2:A,"[^?] "),URLs!A2:A<>""))})

Это создаст заголовок (который вы можете изменить как угодно в самой формуле) и уникальный список URL-адресов, определяемых только частью перед вопросительным знаком (если такой знак существует) или до конца исходного URL-адреса.

Для справки, выражение [^?] означает «строка наибольшей длины, которая может быть извлечена без буквального вопросительного знака».

[ ] = «любой из символов, содержащихся в настоящем документе»

[^ ] = «ни один из этих персонажей»

= буквальный маркер (т. е. все, что будет следующим, будет рассматриваться как буквальный символ)

? = буквальный вопросительный знак (использование буквального маркера перед ? «необходимо», так как только » ? имеет отдельное специальное значение в выражениях типа регулярных выражений)

= «один или несколько предшествующих символов или группа символов»

Комментарии:

1. Всегда пожалуйста, Сами. Я добавил в свой ответ краткое руководство по компонентам регулярных выражений, используемым в этом решении.