我不确定这是否可行,但它应该是。我想将公式应用于整个列B
,而无需手动更改每个公式的行。识别公式中的当前单元格
我怎么会写一个公式,是以当前单元格(比如B2
)和知道,因为它是在第2行采取A2
作为输入,或当它在细胞B7
看A7
...
B2
的公式将为=IF(A2="Yes","Please explain here")
,但应用于具有单个公式的整个列B
。
我不确定这是否可行,但它应该是。我想将公式应用于整个列B
,而无需手动更改每个公式的行。识别公式中的当前单元格
我怎么会写一个公式,是以当前单元格(比如B2
)和知道,因为它是在第2行采取A2
作为输入,或当它在细胞B7
看A7
...
B2
的公式将为=IF(A2="Yes","Please explain here")
,但应用于具有单个公式的整个列B
。
你已经完成了。使用=IF(A2="Yes","Please explain here")
除非指定,否则,(例如,通过在参考使用$
)在Excel中引用是相对的,所以A2
,在B2
一个公式中输入时,实际上意味着“一个细胞到我的左边。”如果您复制该单元格并将其粘贴到整个列中,或者只需使用右下角的点拖动单元格,就会看到每行中的引用已更新。
如果您使用$A$2
来代替,那么您已经进行了绝对引用,并且引用不会更改 - 它们始终指向$A$2
。您也可以参考$A2
或A$2
以使列绝对和行相关,反之亦然。
克里斯的(正确的)答案中的$A:$A
是一个特例。它是对A列的绝对引用。当您在只有单个值的表达式中放置单列(或单行)范围时,Excel会从同一行(或列)中的范围中选取单元格细胞正在评估。这很好,因为列中的所有公式看起来都是一样的,但是你可以很容易地养成这种习惯,并且不小心做了一些类似=max($A:$A,$D:$D)
而不是=max($A2,$D2)
,这不会给出预期的结果,所以我通常会尽量避免它。
一般来说,如果您使用的是INDIRECT
,那么您做错了什么。与维护影响相比,性能影响不算什么。
也许你需要的东西是这样的:
=IF(INDIRECT("A" & ROW())="Yes","Please explain here")
一个更简单的方法是使用
=IF($A:$A="Yes","Please explain here")
注意,使用INDIRECT
创建Volitile功能,这会对性能产生影响。
从OP Q开始,**它应该是整行**的单个公式(和您的解决方案更改公式 - 您将得到'= IF(A2 =“是”,“请在此解释”),然后' = IF(A3 =“是”,“请在此解释”)等等。)。仔细阅读。当然,我们都知道相关的公式和'$'标志 –
@simoco嗨simoco - 我读它的方式不同。我以为他试图避免重写公式的工作,并认为他对Excel很新。如果他只是因为改变公式而受到美学冒犯,那么克里斯的回答是正确的,或者他可以使用R1C1风格。你的意图没有任何意义 - 我通常不会冷静下来,但是使用间接方式只是一个很明显的坏建议。我并没有试图开始一场战争 - 事实上,我仔细研究了你的答案,并发现一个人应该注意平衡,我的做法也是如此。 – maybeWeCouldStealAVan
顺便说一下,'间接'做OP想要什么,所以我认为我的答案是正确的。我同意克里斯asnwer更好,但这并不意味着我的答案是不正确 –