条件格式 - 突出显示公式不同的单元格?

Conditional Formatting - highlight cells where formula is different?

有没有办法通过条件格式(最好没有 VBA,但如果它是 必须 ,那么我愿意接受),以突出显示一个单元格哪里的公式“想法”与上面的单元格不同?

我有一列公式,但必须手动编辑其中的一些。我希望突出显示那些手动编辑的公式,因此当我更改其他单元格的公式时,我知道在更新该列时要跳过哪个单元格。

例如,这是我的专栏和公式:

我希望 B5 突出显示为黄色,因为公式不同。

我试过使用 =FORMULATEXT($B3)<>FORMULATEXT($B2) 但这不起作用,因为它查看的是文字公式文本...其中它们总是不同的。 (=FORMULATEXT(B3)=FORMULATEXT(B2) 将永远是 FALSE,因为公式在技术上正在发生变化,尽管它是相同的“想法”)。

我或许也可以使用 =LEN($B3)<>LEN($B2),但是当行从 9 变为 10,然后再次从 99 变为 [= 时,这会产生误报18=]...

当然,另一种选择就是在 IF() 语句中工作,以阐明我为什么使用不同的公式,即 =IF(ROW()=5,A5+A4+A2+A1,A5+A4) 并使用它...但是没有关于为什么我必须手动编辑我可以工作的真正逻辑 - 这就是为什么我只是想在那些随机单元格上有一个很好的视觉提醒,即公式与其他单元格不同。

编辑:快速注意上面的公式是方式简化的。我的实际情况有点复杂。我也在寻找对此的一般答案。出于我的目的考虑,我也许可以检查一下公式中是否有两个以上的 +,突出显示该单元格。 ...但我对解决这类问题的通用方法很感兴趣,这种方法可以更广泛地应用。

这是我想出的一个快速 VB 辅助解决方案。如果我向特殊单元格添加评论(我这样做是为了解释 formula/why 它的不同),我可以检查评论然后突出显示它。

将此函数添加到工作簿中:

Function has_Comment(cel As Range) As Boolean
has_Comment = False
If cel.Comment.Text <> "" Then
    has_Comment = True
End If
End Function

然后是一个简单的条件格式公式:

=has_comment(B2)

可行,而且相对简单。

编辑:我发现你也可以这样做,这不依赖于评论。只是指出一个Inconsistency Error.

Function has_inconsistency(cel As Range) As Boolean
has_inconsistency = False
If cel.Errors.Item(xlInconsistentFormula).Value = True Then
    has_inconsistency = True
End If
End Function

这是 UDF 的另一个选项:

Function findDifferent(Rng As Range) As Boolean

findDifferent = Not (Rng.FormulaR1C1 = Rng.Offset(-1).FormulaR1C1 Or Rng.FormulaR1C1 = Rng.Offset(1).FormulaR1C1)
End Function