google-sheets - 如何检查查询参数是否为空?
问题描述
这个想法是根据玩家人数、时间和/或难度级别等参数生成棋盘游戏列表。我在Google Sheets中使用QUERY函数。
我有一张包含棋盘游戏列表的表格。他们有单独的列标题、最少玩家数、最多玩家数、难度、游戏时间。
在第二张表中,我有 3 个单元格,用户可以使用它们来编写玩家数量 (B1)、难度 (B2) 和/或游戏时间 (B3)。
这个想法是,在所有 3 个单元格都为空的情况下,它不会显示任何内容,但是您可以填写三个单元格中的任何一个甚至全部来过滤完整的游戏列表。
但是,如果我对所有三个参数都使用一个查询,如果有任何一个为空,我会收到错误消息。
我通过使用多个嵌套的 IF 检查是否有任何单元格为空来解决该问题。基于此,它运行稍微不同的 QUERY 函数(即,排除空单元格)。但是,这很难排除故障,如果我想添加任何其他参数,修改起来会很痛苦。
这是完整的查询:
=QUERY('Lista gier'!A1:H424;"select A,C,D,E,F where C<="&B1&" AND D>="&B1&" AND E='"&B2&"' AND F<="&B12&" AND F>=(0.5*"&B12&") AND B='Gra'");
预期结果是正确的游戏列表,但我总是收到错误消息:
无法解析函数 QUERY 参数 2 的查询字符串:PARSE_ERROR:在第 1 行第 24 列遇到“C”。期待以下之一:“(”...“(”...
解决方案
正确的语法是:
=QUERY('Lista gier'!A1:H424;
"select A,C,D,E,F
where C <= "&B1&"
and D >= "&B1&"
and E = '"&B2&"'
and F <= "&B12&"
and F >= "&0,5*B12&"
and B = 'Gra'"; 0)
假设B1和B12是数字,B2是文本字符串
推荐阅读
- c# - 如何在 Web API 中调用接受相同参数类型的 GET 方法
- angular-cli - 多项目工作区的 Angular 构建
- python - 适用于 Python 的 Lightgbm GPU 安装
- angularjs - 从引导模式中的 ng-repeat 输入获取 ng-model 值
- c++ - 3个圆的交点不正确c ++
- c++ - 有没有办法使用转换而不是 for_each 来实现这一点?如果是的话,这样做真的更好吗?
- google-apps-script - 如何通过单个谷歌表单获取多个行条目?
- javascript - 如何通过邮寄一个简单的 HTML 网站以正确的方式提交我的表单数据?
- apache-kafka - Kafka ktable 损坏消息处理
- python - CSV 和 Pandas 中的多个分隔符和混合引号