google-sheets - 动态查询范围
问题描述
我有一个电子表格,在其中一个选项卡中我有一个表格,其中包含来自其他选项卡的计算数据。这是一个有 11 列的小桌子。Row(1) 是标题行,A 列是项目列表,B 到 J 列是类型。数据仅由数字组成。
在计算数据时,从 B 到 J 的某些列中的时间值可能完全为零。我想用 QUERY 创建这个表的一个子集,但构造一个动态范围,只获取至少有 1 个大于零的值的列。
我知道可以将范围创建为像 {A:A\B:B\D:D} 这样的数组,但在我的情况下,我不知道哪些列的值可以大于零,我也不知道想要将列放入具有完全零值的范围内。
我创建了一个表达式来将此数组值连接为单元格中的文本,但是我不能将它与 QUERY 公式一起使用,无论是 INDEX 还是 TEXT 函数。表是这样的:
项目 TypeA TypeB TypeC TypeD
Bronze 0 0 0 0
Silver 0 0 1 0
Gold 0 0 1 0
Titanimum 1 0 0 0
对于此表快照,我希望 QUERY 范围为{A:A\B:B\D:D}。但是,随着数据的计算,表格在 2 小时或第二天后可能是这样的:
项目 TypeA TypeB TypeC TypeD
Bronze 1 0 0 1
Silver 0 0 1 0
Gold 0 1 1 0
Titanimum 1 0 0 0
因此,对于这张表的快照,我希望 QUERY 范围为{A:A\B:B\C:C\D:D\E:E}。
这是可行的吗?以及如何实现或构建动态 QUERY 范围?
谢谢大家...
解决方案
您可以使用 FILTER 命令根据条件从范围中删除列。
未过滤
Items TypeA TypeB TypeC TypeD TypeE TypeF TypeG
Bronze 1 0 0 1 0 0 1
Silver 1 1 0 1 0 0 1
Gold 1 0 0 1 0 0 1
Titan 1 0 0 1 1 0 1
1 4 1 0 4 1 0 4
过滤以删除总数为 0 的列
Items TypeA TypeB TypeD TypeE TypeG
Bronze 1 0 1 0 1
Silver 1 1 1 0 1
Gold 1 0 1 0 1
Titan 1 0 1 1 1
“技巧”是对列数据求和(对于您的示例),然后测试 >0
过滤器表达式为:
=FILTER(A1:H5,A6:H6 >0)
通过解释:
A1:H5
是要过滤的范围;
A6:H6 >0
选择第 6 行中值 > 0 的所有列
我在 A6 中放置了 1 以确保包含 colA。
您现在可以对上述表达式返回的范围进行查询。
推荐阅读
- java - RXJava Observable Operator 从列表到 HashMap 列表
- html - 如何在其他表格的后面创建表格?
- php - Htaccess 重定向取决于操作系统
- python - dart 中是否有类似 python 或等效的“in”运算符
- azure - 遍历列表并获取列表中的每个值
- python - 我将推文中的单词限制为内容单词现在我想将单词转换为小写并添加带有下划线的 POS
- reactjs - 使用 react 钩子时如何在 react-chartjs 中使用动态数据?
- mysql - 我可以在 CodeIgniter 的模型上使用两个表吗?
- python - asyncpg 错误:Heroku 中的“主机没有 pg_hba.conf 条目”
- c# - C# 应用程序在任务栏中最小化时不工作