识别公式中的当前单元格
我不确定这是否可能,但应该是。 我想将公式应用于整个B
列,而无需手动更改每个公式的行。
我将如何写一个单一的公式,采取当前单元格(说B2
),并知道,因为它是在第2行以A2
作为input,或者当它在单元格B7
看A7
…
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 ...")