【问题标题】:How to make select with variable using Google Sheets如何使用 Google 表格进行变量选择
【发布时间】:2019-10-08 12:31:21
【问题描述】:

我有一个包含几列的 Google 表格,其中记录了来自客户的支持请求。

     A                B                      C
-+---------------+------------------------+-------------
1| Date-1        | John                   | Ticket-101 
2| Date-1        | Anita                  | Ticket-102
3| Date-2        | John                   | Ticket-103
4| Date-3        | Dani                   | Ticket-104
5| Date-3        | Billy                  | Ticket-105

我想创建两个新列,其中包含有关客户的统计数据。在这些新列中,我想知道客户名称和打开的支持票证的数量。

最终结果必须是:

     A                B             C            D          E
-+---------------+------------+-------------+-----------+---------------
1| Date-1        | John       | Ticket-101  | John      |   2    |
2| Date-1        | Anita      | Ticket-102  | Anita     |   1    |
3| Date-2        | John       | Ticket-103  | Dani      |   1    |
4| Date-3        | Dani       | Ticket-104  | Billy     |   1    |
5| Date-3        | Billy      | Ticket-105  | 

我以这种方式创建了 D 列

=UNIQUE(QUERY(B1:B))

为了计算我使用客户联系我们的次数:

=COUNTA(IFERROR(QUERY(B1:B, "select B where B='John'", 0)))

当然,这是一个非常愚蠢的解决方案,因为对于每个新客户,我都必须使用

创建一个新公式

....其中 B='客户名称'".....

我想知道是否可以以自动填充客户端名称的方式创建公式?我想像这样的事情:

=ARRAYFORMULA(COUNTA(IFERROR(QUERY(B1:B, "select B where B='value-of-D'", 0))))

【问题讨论】:

    标签: google-sheets google-sheets-formula counting google-sheets-query google-query-language


    【解决方案1】:
    =QUERY(B:C, 
     "select B,count(C) 
      where B!='' 
      group by B 
      label count(C)''", 0)
    

    你也可以这样订购:

    =QUERY(B:C, 
     "select B,count(C) 
      where B!='' 
      group by B 
      order by count(C) desc
      label count(C)''", 0)
    

    【讨论】:

    • 谢谢 player0 和 @JPV 这两个解决方案的工作方式相同,但还有一个我不知道的问题。结果按客户名称的字母顺序排列。我还有其他列 F、G、H 必须手动编写其他信息。例如笔记。这就是为什么在每张新票之后,“客户名称:计数”对会上下浮动,具体取决于提交新票的客户名称。我希望客户的名称保持统计,新名称将添加到列表的底部。您对我们如何解决这个问题有什么想法吗?
    • 你能分享一份你的工作表吗?
    • 这里是示例表 - docs.google.com/spreadsheets/d/…
    • =ARRAYFORMULA(IFERROR(VLOOKUP(UNIQUE(B2:B), QUERY(B2:C, "select B,count(C) where B!='' group by B label count(C)''", 0), {1,2}, 0)))
    【解决方案2】:

    试试

    =query(B:C, "Select B, count(C) where B<>'' group by B label B 'Name', count(C) 'Count'", 1)
    

    看看这是否有效?

    【讨论】:

      猜你喜欢
      • 2014-05-22
      • 1970-01-01
      • 2022-01-12
      • 2015-03-20
      • 2018-09-18
      • 2021-10-15
      • 1970-01-01
      • 2020-07-22
      • 1970-01-01
      相关资源
      最近更新 更多