如何用自定义公式为QUERY函数返回结果设置条件格式
用条件格式标记QUERY数组结果的不可编辑单元格
因为QUERY返回的多行结果属于数组溢出/数组填充单元格,这类单元格本身没有独立公式,所以ISFORMULA()无法识别,需要用自定义公式判断单元格是否属于QUERY的输出范围:
操作步骤(新版Google Sheets,支持溢出数组)
- 选中需要标记的单元格区域(如果QUERY在A1且自动溢出,可直接选中A1后按
Ctrl+Shift+↓+Ctrl+Shift+→选中所有溢出单元格,或直接选整列/整行) - 打开「条件格式」→「新建规则」→「使用公式确定要设置格式的单元格」
- 输入自定义公式(替换
$A$1为你的QUERY公式所在的起始单元格):
注:=AND(ROW(A1)>=ROW($A$1), ROW(A1)<=ROW($A$1#), COLUMN(A1)>=COLUMN($A$1), COLUMN(A1)<=COLUMN($A$1#))$A$1#是溢出范围引用,代表A1单元格的QUERY公式生成的所有溢出单元格 - 选择你需要的格式(比如灰色填充、加粗边框),保存规则
兼容旧版数组公式(需用ARRAYFORMULA包裹QUERY)
如果你的QUERY是用ARRAYFORMULA(QUERY(...))生成的数组,替换公式为:
=AND(ROW(A1)>=ROW($A$1), ROW(A1)<=ROW($A$1)+ROWS(ARRAYFORMULA(QUERY(你的数据源, "你的查询语句")))-1, COLUMN(A1)>=COLUMN($A$1), COLUMN(A1)<=COLUMN($A$1)+COLUMNS(ARRAYFORMULA(QUERY(你的数据源, "你的查询语句")))-1)
把公式里的「你的数据源」和「你的查询语句」替换成实际内容即可。
结合已有的ISFORMULA规则
如果要同时标记独立公式单元格和QUERY数组结果,可再新建一个条件格式规则:
=ISFORMULA(A1)
设置对应的格式即可。
内容的提问来源于stack exchange,提问作者RustyG
相关产品推荐
相关产品推荐

