识别公式中的当前单元格

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

我将如何写一个单一的公式,采取当前单元格(说B2 ),并知道,因为它是在第2行以A2作为input,或者当它在单元格B7A7

B2的公式为=IF(A2="Yes","Please explain here")但用一个公式应用于整个B列。

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

除非你另外指定(例如在你的引用中使用$ ,否则Excel中的引用是相对的,所以当在B2中的公式中inputA2时,确实意味着“在我左边的一个单元格”。 如果您复制该单元格并将其粘贴到整个列中,或者使用右下angular的点拖动单元格,则会看到每行中的引用已经更新。

如果您使用了$A$2 ,那么您已经进行了绝对引用,引用不会改变 – 它们总是指向$A$2 。 你也可以参考$A2或者A$2来使列的绝对值和行的相对值相等,反之亦然。

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

一般来说,如果你使用INDIRECT你做错了什么。 与维护的影响相比,性能的影响不算什么。

一个更简单的方法是使用

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

请注意,使用INDIRECT会创build一个具有性能影响的Volitile函数。

也许你需要这样的东西:

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

当前左边1列;

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