是否有通过条件格式化的方式(最好没有VBA,但如果它是必须,那么我对它开放),突出显示公式“想法”不同于上面的细胞?
我有一列公式,但必须手动编辑其中的一些。我希望突出显示那些手动编辑的公式,所以当我更改其他单元格的公式时,我知道在更新该列时要跳过哪个单元格。
我希望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)
,请突出显示单元格。 ...但我对解决此类问题的一般方法感兴趣,可以更广泛地应用。
答案 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
答案 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