Google Sheets QUERY函数某列文本无法返回、数字可正常展示问题咨询
问题原因
- Google Sheets的
QUERY函数会自动为每列判定统一数据类型:默认采样列的前若干行内容,以占比最高的类型作为整列的唯一合法类型,不符合该类型的内容会被识别为无效值,直接返回空。 - 你的备注列绝大多数行是空白,QUERY采样时默认将该列判定为数值类型,因此包含文本的备注不符合类型要求不会被返回,只有纯数字内容符合规则可正常展示。
解决方法
你可以根据自己的使用场景选择以下任意一种方案:
- 方案1:全量数据强制转文本(适合不需要对返回结果做数值计算的场景)
给整个数据源套上ARRAYFORMULA(TO_TEXT())强制所有内容转为文本类型,修改后的公式如下:=QUERY(ARRAYFORMULA(TO_TEXT('pivot data source'!A:AN)),"select * where Col1='2021-08' order by Col2") - 方案2:仅备注列转文本(适合其他列需要保留数值类型做计算的场景)
假设你的备注列为AN列(可替换为实际对应的列),单独对备注列做文本转换,其他列保留原有类型即可:=QUERY({'pivot data source'!A:AM,ARRAYFORMULA(TO_TEXT('pivot data source'!AN:AN))},"select * where Col1='2021-08' order by Col2") - 方案3:指定表头行数(适合原数据表带有表头的场景)
给QUERY补充第三个参数指定表头行数,QUERY会将表头纳入类型判定逻辑,只要备注列表头是文本类型,整列就会被判定为文本类型。假设你有1行表头,修改后的公式如下:=QUERY({'pivot data source'!A:AN},"select * where Col1='2021-08' order by Col2",1)
内容的提问来源于stack exchange,提问作者Scripter22
相关产品推荐
相关产品推荐

