在条件格式中使用基于数组的公式

Using an array based formula in conditional formatting

我尝试用 excel 做的事情有点不正统,但我需要一种方法来清理人们导入到 TechExcel 的 DevTrack 中的数据。如果您尝试导入的内容与项目中已有的内容不是 100% 准确,DevTrack 会为字段创建值,从而导致格式略有不同的重复值。

我得到的是 "validator" excel sheet;人们 copy/paste 他们想要导入的内容,以及任何与数据验证不匹配的内容 table 都会突出显示。

数据验证本身不起作用,因为 copy/paste 会覆盖它,手动输入数据是浪费时间。

我已经设法使用此公式部分地使条件格式起作用: =ISERROR(MATCH(C5,D:D,0))

但是不区分大小写。我需要区分大小写。

所以我设法创建了另一个公式,如果没有匹配则显示 true,但是 exact 要求它是一个似乎不适用于条件格式的数组公式。

因此,如果使用 ctrl+shift+enter 将其输入到单元格中,这将起作用,但不能作为条件规则起作用。 {=ISERROR(MATCH(TRUE,EXACT(C5,D:D),0))}

这是我要测试的简化版本。当没有大小写匹配时,该公式为真,但我无法使用 ctrl+shift+enter 在条件格式中输入它。如果这按我的意愿工作,小写 "melon" 将突出显示红色。

有没有办法让它工作,或者有其他方法可以做到这一点?

如果重要的话,我在 office 365 中使用最新版本的 excel。

使用无需 CSE 即可生成数组处理的函数。例如 SUMPRODUCT 或 AGGREGATE(以及其他)。

'to show TRUE for case-sensitive matches
=SIGN(AGGREGATE(15, 6, ROW($D:$D99)/EXACT($C5, $D:$D999), 1))
'to show TRUE on no case-sensitive match
=ISERROR(AGGREGATE(15, 6, ROW($D:$D99)/EXACT($C5, $D:$D999), 1))

SIGN 包装器是不必要的,但对我来说它是一个视觉提醒,我正在寻找一个布尔值。

您不能在 CFR 中使用像 D5:INDEX(D:D, MATCH("zzz", D:D)) 这样的动态范围并且您 想在 AGGREGATE(或 SUMPRODUCT)中使用完整的列引用,所以我选择了 $D$5:$D$9999。