Как ФИЛЬТР на основе вторичного, или даже третичного, ФИЛЬТРА? - PullRequest
0 голосов
/ 13 марта 2019

У меня есть лист следующим образом:

Мне нужно подсчитать, сколько аптек было куплено, когда конкретный продукт был их основной покупкой.

Например, продукт А должен вернуть 2 (заказы 102 и 108).

Order ID    Date          Type         Customer ID    Product
100         2019-01-10    Main         21             A
102         2019-01-10    Upsell       21             B
104         2019-01-10    Main         22             A
106         2019-01-10    Main         23             A
108         2019-01-11    Upsell       23             C
110         2019-01-11    Main         24             A   
...         ...           ...          ...            ...

Прямо сейчас я использую раздражающе сложную FILTER в клетке, похожей на эту:

=COUNTA(FILTER(A:A, C:C = "Upsell", D:D = FILTER(D:D, C:C = "Main", E:E = "A")))

Однако, похоже, это не работает. Это также не будет делать то, что нужно. Технически, если кто-то позже также купил какой-либо другой продукт, кроме продукта А, в качестве своей основной покупки, любой из его апселей будет по-прежнему учитываться при поиске количества апселов у продукта А.

Есть ли более простой / надежный способ сделать это?

Можно ли настроить цикл в скриптах Google Apps, который может это сделать? (Просмотрите все подходящие строки, найдите все строки, содержащие один и тот же идентификатор клиента, который будет продаваться в течение, скажем, 2 дня после основной покупки или до их следующей основной покупки?)

1 Ответ

0 голосов
/ 13 марта 2019

Вы можете попробовать перекрывающиеся диапазоны:

=COUNTA(FILTER(A3:A8,D2:D7=D3:D8,C3:C8="Upsell",C2:C7="Main",E2:E7="A"))

Если предположить, что A1: E7 имеет вашу таблицу,

  • C2:C7="Main",E2:E7="A" будет продукт A Главный фильтр
  • C3:C8="Upsell" Является ли следующий продукт Upsell?
  • D2:D7=D3:D8 Это тот же самый клиент, который купил upsell и основной?
  • FILTER и COUNT соответствующие идентификаторы ордера upsell.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...