Google Sheets QUERY函数同列混合日期字符时如何显示全部值
问题原因
这个问题是Google Sheets QUERY函数的默认判定逻辑导致的:QUERY会自动统计目标列中占比更高的数据类型,将整列统一设置为该类型。当日期数量多于或等于字符数量时,整列会被判定为日期类型,文本类型的字符无法被正常识别展示;当字符数量更多时,整列被判定为文本类型,日期会以文本形式正常展示。
解决方法
方法1:强制将整个数据源转为文本格式(最通用)
用ARRAYFORMULA+TO_TEXT包裹QUERY的数据源区域,让所有值统一为文本类型,即可正常展示所有内容:
=QUERY(ARRAYFORMULA(TO_TEXT(你的数据范围)), "你的查询语句", 表头行数量)
举个例子,如果你原来的公式是QUERY(A1:C10, "SELECT B,C", 1),修改后为:
=QUERY(ARRAYFORMULA(TO_TEXT(A1:C10)), "SELECT Col2,Col3", 1)
注意:转成文本后原范围的列名会变为Col1、Col2、Col3依次排序,查询语句里的列名需要对应修改
方法2:仅转换目标列为文本(保留其他列的数据类型)
如果不想影响其他列的日期/数值计算功能,可以只将混合内容的目标列单独转换为文本:
=QUERY({A1:A10,ARRAYFORMULA(TO_TEXT(B1:B10)),C1:C10}, "SELECT Col1,Col2,Col3", 1)
如果后续需要对转成文本的日期做计算,用DATEVALUE(日期文本)即可转回日期类型。
内容的提问来源于stack exchange,提问作者ffzefzef zefzeff
相关产品推荐
相关产品推荐

