识别公式中的当前单元格

时间:2014-01-17 15:00:07

标签: excel vba excel-vba

我不确定这是否可行,但它应该是。我想将公式应用于整个列B,而无需手动更改每个公式的行。

我如何编写一个采用当前单元格的公式(比如B2),并且知道因为它在第2行中以A2作为输入,或者它在单元格中{ {1}}查看B7 ...

A7的公式为B2,但使用单个公式应用于整个列=IF(A2="Yes","Please explain here")

4 个答案:

答案 0 :(得分:2)

更简单的方法是使用

=IF($A:$A="Yes","Please explain here")

请注意,使用INDIRECT会创建一个Volitile函数,这会影响性能。

答案 1 :(得分:0)

也许你需要这样的东西:

=IF(INDIRECT("A" & ROW())="Yes","Please explain here")

答案 2 :(得分:-1)

当前左侧的1列;

=IF(INDIRECT("RC[-1]",0)="Yes","Please ...")

答案 3 :(得分:-1)

你已经完成了。使用=IF(A2="Yes","Please explain here")

除非您另行指定,(例如,在您的参考中使用$)Excel中的引用是相对的,因此A2B2中的公式中输入时实际上意味着“我左边的一个牢房。“如果您复制该单元格并将其粘贴到整个列中,或者只是使用右下角的点向下拖动单元格,您将看到每行中的引用都已更新。

如果您使用了$A$2,那么您已经做了绝对引用,并且引用不会改变 - 它们总是指向$A$2。您还可以参考$A2A$2使列绝对,行相对,反之亦然。

克里斯(正确)答案中的$A:$A是一个特例。它是对A列的绝对引用。当您在表达式中放置单列(或单行)范围时,只需要一个值,excel将从同一行(或列)中的范围中选择单元格。被评估的细胞。这很漂亮,因为你的专栏中的所有公式看起来都一样,但是你很容易养成习惯而不小心做了类似=max($A:$A,$D:$D)而不是=max($A2,$D2)的事情,这些事情不会给出预期的结果,所以我通常尽量避免它。

一般情况下,如果您使用的是INDIRECT,那么您做错了。与维护含义相比,性能影响无关紧要。