【问题标题】:How to FILTER based on a secondary, or even tertiary, FILTER?如何基于二级,甚至三级过滤器进行过滤?
【发布时间】:2019-03-12 21:15:55
【问题描述】:

我有一张如下表:

我需要计算当他们主要购买特定产品时,他们购买了多少追加销售。

例如,产品 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 脚本中设置一个循环来执行此操作? (遍历每个匹配的行,找到所有包含相同客户 ID 且在主要购买后 2 天内或直到他们下一次主要购买之前加售的行?)

【问题讨论】:

    标签: google-apps-script google-sheets


    【解决方案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" 将成为产品 A 主过滤器
    • C3:C8="Upsell" 下一个产品是追加销售吗?
    • D2:D7=D3:D8 是同一个客户买了加售和主?
    • FILTER 和 COUNT 对应的加售订单 ID。

    【讨论】:

      猜你喜欢
      • 2015-11-29
      • 1970-01-01
      • 2019-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-12
      相关资源
      最近更新 更多