电子表格多查询组合:兼容部分查询为空的场景
解决方法
问题根源在于你用dashboar_data/0作为无结果时的返回值,这会触发错误导致整个数组组合失效。只需把错误分支改成返回空数组,就能让有结果的查询正常输出。
修改后的公式
={ IFERROR(QUERY(dashboar_data;"SELECT C,I WHERE J = date'" & TEXT(DATEVALUE(B5);"yyyy-mm-dd") & "'";0); {}); IFERROR(QUERY(dashboar_data;"SELECT C,M WHERE N = date'" & TEXT(DATEVALUE(B5);"yyyy-mm-dd") & "'";0); {}); IFERROR(QUERY(dashboar_data;"SELECT C,Q WHERE R = date'" & TEXT(DATEVALUE(B5);"yyyy-mm-dd") & "'";0); {}) }
可选优化:避免重复表头
如果三个查询返回的表头是重复的(比如第一列都是同一标题),可以去掉每个QUERY的表头(将最后一个参数0改为1),再手动添加一次统一表头:
={ {"列C名称","对应数值列名称"}; IFERROR(QUERY(dashboar_data;"SELECT C,I WHERE J = date'" & TEXT(DATEVALUE(B5);"yyyy-mm-dd") & "'";1); {}); IFERROR(QUERY(dashboar_data;"SELECT C,M WHERE N = date'" & TEXT(DATEVALUE(B5);"yyyy-mm-dd") & "'";1); {}); IFERROR(QUERY(dashboar_data;"SELECT C,Q WHERE R = date'" & TEXT(DATEVALUE(B5);"yyyy-mm-dd") & "'";1); {}) }
原理说明
- 空数组
{}不会干扰数组组合的结构,当某个查询无匹配结果时,这部分只会留空,不影响其他有结果的查询输出。 - 外层的
IFERROR可以直接删掉,因为每个子查询已经单独处理了空结果的情况。
内容的提问来源于stack exchange,提问作者kykyy drone
相关产品推荐
相关产品推荐

