2017-08-03 180 views
2

有没有办法通过条件格式(最好是没有VBA,但如果它是一个必须,然后我打开它),突出显示一个单元格的公式“想法”不同于上面的单元格?条件格式 - 突出显示公式不同的单元格?

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

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

我想有B5黄色突出显示,由于公式是不同的。

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

我还可以或许用=LEN($B3)<>LEN($B2)但会有假阳性,当行更改从910,再从99100 ...

另一个选项,当然,仅仅是在一个IF()声明中工作,以澄清为什么我在做一个不同的公式,即=IF(ROW()=5,A5+A4+A2+A1,A5+A4)并使用它......但是没有真正的逻辑为什么我必须手动编辑我可以工作 - 这就是为什么我只想对那些随机单元格提供了很好的视觉提示,该公式不像其他人。

编辑:快注意上面的公式是的方式简化。我的实际情况有点复杂。我也在寻找一个普遍的答案。考虑到我的目的,我可能会检查一下,如果公式中有两个以上+,请突出显示该单元格。 ......但我对解决这种更广泛适用的问题的一般方法感兴趣。

+2

于是小绿色三角形中左上角是不够的? 8P –

+0

也许会添加评论(例如红色三角形而不是黄色填充)。 – pnuts

+0

你可以使用更通用的公式:'= INDEX(A:A,ROW())+ INDEX(A:A,ROW() - 1)',那么你可以直接比较FORMULATEXT。 –

回答

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 
+1

我真诚地不试图回答我自己的问题问题(特别是如我所说我正在寻找一个非VB解决方案!) - 思考后,以及上述评论,只是想作为一个注释/替代方式添加此。 – BruceWayne

+2

我认为你坚持的选择,你并不真正想要的:VBA或R1C1的引用。 (遗憾的是,FormulaText没有指定R1C1的标志) –

+0

@LordPeter - 是的,除非我创建一个或两个辅助列(我不愿意做,因为我的表已经很大)。我也一直在想,为什么Excel没有像'= get_R1C1([某些A1样式公式或引用])那样的内置公式,它会返回公式的R1C1样式。 – BruceWayne

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

+0

哦,不错,这也是一个好主意:D – BruceWayne

+0

非常好!甚至不需要帮助栏。似乎很多工作将标准警报三角形更改为背景色! –

+0

@LordPeter - 现在,我将使用下面使用的vba,因为有可能我有三个+公式在一行中都是不同的......除非我错过了某些东西,Scott只是在上面和下面检查无可否认,这正是我在OP中所说的)。 – BruceWayne

相关问题