if-statement - Google 表格 - 按 If/Then 桶分组,计算值

标签 if-statement google-sheets group-by google-sheets-query

在 Google 表格中,我尝试编写一个查询(不是独立的数据透视表或脚本),它根据 if/then 语句按计算值分组。

这是我的示例数据:

Name    Days
Bob     0
Ed      1
Frank   2
Joey    4
Deluth  7
Henry   12

按 B 列分组非常简单:

=QUERY(A1:B7,"SELECT B, COUNT(B) GROUP BY B")

哪些输出:

Days    count
0       1
1       1
2       1
4       1
7       1
12      1

但我想做的是将这些天分组到特定的桶中。桶和期望的输出将是这个期望的输出:

Days    count
0       1
1       1
2-5     2
6-9     1
10+     1

所以它几乎是一个“if 0 then '0', if 1 then '1', if >1 AND <=5 then '2-5', etc., with a Group By at the end?这怎么会以QUERY格式书写?

最佳答案

如果您在(比如说)G2:G6 中有每个范围的上限,您可以使用 Frequency 来获得结果:

=frequency(B2:B,G2:G)

然后您可以将它与您的 bin 单元格结合起来,将两列放在一起:

=ArrayFormula({D2:D6,frequency(B2:B,G2:G)})

从 bin 单元格中提取上限有点笨拙,但您可以在没有辅助列的情况下像这样将它们放在一起:

=ArrayFormula({D2:D6,frequency(B2:B,--(right(D2:D5,len(D2:D5)-iferror(find("-",D2:D5),0))))})

enter image description here

请注意,您不需要定义“10+”范围,除非出于显示目的,Frequency 会自动将所有剩余值(9 以上)分组到一个单独的 bin 中。

如果您愿意,您可以使用一系列嵌套的 if 语句或(更好的)vlookup 重新编码原始日期值,并将结果传递给具有分组的查询。

关于if-statement - Google 表格 - 按 If/Then 桶分组,计算值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52630619/

相关文章:

sql - SQL Server 中带有子查询的 CASE 语句

c - 删除 "if"语句的大括号是否有任何异常(exception)?

php - 我可以在 if 语句中串联函数并返回单个变量吗?

java - 如何使用for循环提高效率?

xml - 如何使用 XmlService 检索值?

google-apps-script - 超过一万行的 TextFinder 实例的 findNext 出现服务错误

python - 将 Google 电子表格 CSV 导入 Pandas 数据框

PostgreSQL 合并两个查询,每个查询都有 COUNT 和 GROUP BY

batch-file - 在 if 语句 = 上做 2 件事

python - 按每个元素的第一个字符拆分列表