Как ФИЛЬТРОВАТЬ на основе вторичного или даже третичного ФИЛЬТРА?

#google-apps-script #google-sheets

#google-apps-script #google-sheets

Вопрос:

У меня есть лист следующего вида:

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

Например, продукт A должен возвращать 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")))

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

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

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

Ответ №1:

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

 =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" будет ли продукт основным фильтром
  • C3:C8="Upsell" Является ли следующий продукт распродажей?
  • D2:D7=D3:D8 Это тот же клиент, который купил upsell и main?
  • FILTER и COUNT соответствующие идентификаторы заказа на повышение цены.