使用QUERY的条件格式会导致Google电子表格

时间:2017-03-20 06:49:13

标签: google-sheets

我有一张带有1张软件版本的电子表格和另一张安装记录。我想做一个条件格式,将安装中的版本(在F列上)与另一个工作表('Software Versions')上的已知最新版本号进行比较。

当前解决方案

我最初想出了这个公式:

=AND(F2<>"", F2=G2)

有效。但我需要在G2上维护一列QUERY结果:

=QUERY('Software Versions'!$A$1:$B$8, "Select B where A='" &D4& "' LIMIT 1")

问题

现在我想完全删除G2行。我想出了这个综合查询:

=AND(F2<>"", F2=QUERY('Software Versions'!$A$1:$B$8, "Select B where A='" &D4& "' LIMIT 1"))

但我无法保存,因为它是“无效的公式”:

enter image description here

任何实际行动方式?

2 个答案:

答案 0 :(得分:3)

尝试使用此公式:

=AND(F2<>"", F2=IFERROR(QUERY(INDIRECT("'Software Versions'!$A$1:$B$8"), "Select B where A='" &D4& "' LIMIT 1 label B ''"),""))

我能够使用这个公式进行条件格式化。

的改进

  1. 使用indirect来处理其他工作表
  2. 使用label B ''阻止标题显示为查询结果
  3. 使用iferror(..., "")确保在query
  4. 找不到数据时不会发生错误

答案 1 :(得分:0)

我已经习惯了条件格式化的旧旧VLOOKUP函数。

语法为VLOOKUP(valueOrCell, sourceRange, index, FALSE)

因此,如果sourceRange中存在第一个参数valueOrCell的值,则返回index处的值。 FALSE是完全匹配的。

在我的示例中,我只使用了一个工作表,但如果将sourceRange设置为不同的工作表,它也可以正常工作。

example using VLOOKUP