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

时间:2017-08-03 17:04:07

标签: excel excel-formula conditional-formatting

是否有通过条件格式化的方式(最好没有VBA,但如果它是必须,那么我对它开放),突出显示公式“想法”不同于上面的细胞?

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

例如,这是我的专栏和公式:
enter image description here

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

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

我也可以使用=LEN($B3)<>LEN($B2),但当行从9更改为10时,再次从99更改为{{1}时,这会产生误报。 } ...

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

编辑:快速注意上述公式是方式简化。我的实际情况有点复杂。我也在寻找一般的答案。只是考虑到我的目的,我可以检查如果公式中有两个以上=IF(ROW()=5,A5+A4+A2+A1,A5+A4),请突出显示单元格。 ...但我对解决此类问题的一般方法感兴趣,可以更广泛地应用。

2 个答案:

答案 0 :(得分:2)

这是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

enter image description here

答案 1 :(得分:1)

这是我想出的一个快速VB辅助解决方案。如果我在特殊单元格中添加注释(我会解释公式/为什么它不同),我可以检查注释然后突出显示它。

将此功能添加到工作簿:

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