使用字符串创建数据透视表的 QUERY 函数

问题描述 投票:0回答:2

我正在尝试使用 Google 表格解决这个问题。

我尝试过的:

在Google Sheets中,我可以使用内置的数据透视表功能来制作数据透视表。然而,与 Excel(2016 年之前)类似,GSheets 缺乏使用文本值而不是数字创建数据透视表的能力。 (正如上面链接中所说。)

在 Excel 中,正如上面的链接中所述,您可以使用 MS Power Query 插件,但我在 GSheets 中没有该插件。

在 Excel 中,我还可以使用 四个单独的 VBA 脚本 执行一些复杂的操作来实现相同的结果。然而对我来说,将其转换为 Google Scripts API 具有挑战性。

我还可以使用 GSheets 的 QUERY 函数来创建数据透视表。然而,我似乎再次无法在数据透视表中获取文本值。例如一个查询: =QUERY(表,"SELECT C, count(B) GROUP BY C",1) 否则会创建一个数据透视表,我have放置count(B)或max(B)或min(B)或avg(B),这意味着B必须只有数字。如果我只是将其替换为 B,则不起作用。

有什么想法吗?最简单的(希望是非脚本的)方法是什么?

google-sheets pivot-table google-query-language
2个回答
0
投票

这个答案与其他答案相同,但有解释。

给定一个如下所示的“数据”表:

A B C
1 姓名 部门 其他
2 戴夫 销售 啊啊
3 艾伦 销售 bb
4 弗兰克 营销 ccc

您可以使用 QUERY 函数创建类似于数据透视表的内容。

=QUERY('Data'!A1:C4, "SELECT A, MAX(C) GROUP BY A PIVOT B", 1)

第一个参数是查询/数据透视表的数据。第三个参数表示有多少行是列标题。在 SELECT 语句中:

  • A 是数据透视表的行,也必须位于 GROUP BY 部分中。
  • B 是数据透视表的列,必须位于 PIVOT 部分
  • MAX(C) 是数据透视表中的“值”。在 SELECT 查询中,它必须由聚合函数包装。如果 C 是字符串,MAX(C) 将返回该字符串。

在另一张工作表的单元格 A1 中,输入上面的“查询”。该查询的结果将是这样的表:

A B C
1 姓名 销售 营销
2 戴夫 啊啊
3 艾伦 bb
4 弗兰克 ccc

-1
投票

..这意味着 B 必须只有数字...

这是一个假设。而且不是一个很好的。

因为您自己没有提供示例问题。 对于链接的问题,很简单:

=QUERY(A1:C5,"Select A, max(C) group by A pivot B", 1)

单击左侧的 ☑ 将其标记为已回答。

© www.soinside.com 2019 - 2024. All rights reserved.