如何基于Google Sheets QUERY函数按来源工作表设置条件格式
解决方案
该需求可以实现,最稳妥的实现方法如下:
步骤1:修改现有QUERY公式,新增来源标记列
你原来的公式是用数组拼接两个QUERY的返回结果,我们可以给两个查询分别新增一个固定值的来源标识列,用来区分数据来自Sheet1还是Sheet2,修正后的完整公式如下:
={ QUERY(IMPORTRANGE("url1", "Sheet1!$A:$Z"), "SELECT Col1,Col2,Col3,Col4,Col5,Col15,Col17,Col18,Col7,Col11,Col12,Col13,Col14,'Sheet1' WHERE Col15 IS NOT NULL", 1); QUERY(IMPORTRANGE("url2", "Sheet2!$A3:$Z"), "SELECT Col1,Col2,Col3,Col4,Col5,Col8,Col9,Col10,Col11,Col12,Col13,Col14,Col15,'Sheet2' WHERE Col17 = '1'",1) }
注:这里修正了你原公式中引号位置的小错误,新增的最后一列会自动填充对应来源名称,不会影响原有数据展示。
步骤2:设置条件格式高亮Sheet2来源的行
- 选中所有数据输出的列(假设你的公式放在A1单元格,数据列是A到M,就选中A:M区域)
- 点击顶部菜单栏「格式」→「条件格式」
- 右侧弹出的条件格式面板中,「格式规则」选择「自定义公式是」
- 输入公式:
=$N1="Sheet2"(N列就是我们新增的来源标记列,如果你的数据起始列不是A,对应调整列名即可) - 选择你想要的高亮填充色,点击「完成」即可
- 后续如果不想看到来源标记列,右键点击N列选择「隐藏列」就可以了
可选方案(仅适用于Sheet1查询结果行数固定的场景)
如果不愿意修改原有公式,且你能确定第一个QUERY返回的行数固定为X行,也可以直接用行数判断做条件格式,自定义公式写=ROW()>X+1即可,但是如果Sheet1的查询结果行数是动态变化的,这个方法会失效,因此更推荐第一种方案。
内容的提问来源于stack exchange,提问作者natew
相关产品推荐
相关产品推荐

