Как подсчитать 56 существует в 156/56/2567 и вернуть только один раз? Google листы - PullRequest
0 голосов
/ 04 февраля 2020

У меня есть один лист с данными о моих объявлениях на Facebook. У меня есть другой лист с данными о продуктах в моем магазине. У меня возникли проблемы с некоторыми показателями, где я считаю, сколько раз мой идентификатор продукта существует в строке, где несколько номеров. Они отформатированы следующим образом: / 2032/2034/2040/1 /

Это просто для строк, где существует только один идентификатор продукта, но некоторые строки имеют несколько идентификаторов, разделенных символом /. И мне нужно посмотреть, существует ли идентификатор как точное совпадение в одиночку или где-то между /'s.

Rows with facebook ads data:
A1: /2032/2034/2040/1/
A2: /1548/84/2154/2001/
A3: /2032/1689/1840/2548/

Row with product data:
B1: 2034
C1: I need a countifs here that checks how many times B1 exists in column A. Lets say I have thousands of rows with different variations of A1 where B1 could standalone. How do I count this? I always need exact matches.

Ответы [ 2 ]

1 голос
/ 05 февраля 2020

Вы можете сравнить нужное число (56) с комментарием REGEX @MonkeyZeus с небольшим изменением -> "(?:^|/)"&B1&"(?:/|$)", поэтому конечный результат:

=IF(REGEXMATCH(A1, "(?:^|/)"&B1&"(?:/|$)"), true, false)

Пример:

enter image description here


ОБНОВЛЕНИЕ

Если вам нужно подсчитать всего 56 в X строках, вы можете изменить "True" / False "условия для" 1/0 ", а затем выполните =SUM(C1:C5) в последнем ряду:

=IF(REGEXMATCH(A1, "(?:^|/)"&B1&"(?:/|$)"), 1, 0)

enter image description here


ОБНОВЛЕНИЕ 2

Спасибо за помощь. К сожалению, я не могу сделать это таким образом, потому что у меня есть множество данных для этого. Есть ли способ сделать это с помощью индикатора в отдельной ячейке, не добавляя дополнительный шаг с «суммой»?

В этом случае вы можете сделать:

=COUNTA(FILTER(A:A,  REGEXMATCH(A:A,  "(?:^|/)"&B2&"(?:/|$)")))

Пример :

enter image description here


ОБНОВЛЕНИЕ 3

При выполнении следующего условия вы проверяете каждую отдельную возможность просто добавление еще COUNTIF :

=COUNTIF(A:A,B1) + COUNTIF(A:A, "*/"&B1) + COUNTIF(A:A, B1&"/*") + COUNTIF(A:A, "*/"&B1&"/*")

enter image description here

Надеюсь, это поможет!

1 голос
/ 04 февраля 2020

попробовать:

=COUNTIF(SPLIT(A1, "/"), B1)

0


ОБНОВЛЕНИЕ:

=ARRAYFORMULA(IF(A2<>"", {
 SUM(IF((REGEXMATCH(""&DATA!C:C, ""&A2))*(DATA!B:B="carousel"),  1, )), 
 SUM(IF((REGEXMATCH(""&DATA!C:C, ""&A2))*(DATA!B:B="imagepost"), 1, ))}, ))

0

...