Google Sheets查询:提取数据并将复选框替换为分值与状态
Google Sheets QUERY函数解决方案
最终可用公式
=QUERY( { A2:A, ARRAYFORMULA(IF(B2:B=TRUE, 6, 0)), ARRAYFORMULA(IF(C2:C=TRUE, 4, 0)), ARRAYFORMULA(IF(D2:D=TRUE, "通过", "未通过")) }, "SELECT * WHERE Col1 IS NOT NULL LABEL Col1 '学生姓名', Col2 'Reason分值', Col3 'Accuracy分值', Col4 'Passed状态'", 0 )
公式拆解说明
- 数据转换层:用数组
{}整合处理后的数据A2:A:直接引用学生姓名列ARRAYFORMULA(IF(B2:B=TRUE, 6, 0)):将Reason复选框转成分值,勾选得6分,未勾选得0分(若要未勾选显示NA,把0替换为"NA"即可)ARRAYFORMULA(IF(C2:C=TRUE, 4, 0)):同理处理Accuracy复选框,勾选得4分,未勾选得0分ARRAYFORMULA(IF(D2:D=TRUE, "通过", "未通过")):将Passed复选框转成状态文本
- QUERY筛选层:
"SELECT * WHERE Col1 IS NOT NULL":只保留姓名不为空的有效行LABEL参数:为每一列设置需求的自定义表头- 最后一个参数
0:告知QUERY数据源无自带表头,使用我们设置的LABEL作为表头
你之前公式的问题
- IF函数语法错误:括号不匹配,且复选框在Google Sheets中存储的是布尔值
TRUE/FALSE,不是字符串"TRUE" - QUERY调用错误:多余的下划线,且未将转换后的数据作为QUERY的数据源
- 逻辑顺序错误:未先完成复选框到分值/状态的转换,就直接查询原始数据
内容的提问来源于stack exchange,提问作者Gordon Irving
相关产品推荐
相关产品推荐

