2014-01-17 25 views
2

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

我怎么会写一个公式,是以当前单元格(比如B2)和知道,因为它是在第2行采取A2作为输入,或当它在细胞B7A7 ...

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

回答

-1

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

除非指定,否则,(例如,通过在参考使用$)在Excel中引用是相对的,所以A2,在B2一个公式中输入时,实际上意味着“一个细胞到我的左边。”如果您复制该单元格并将其粘贴到整个列中,或者只需使用右下角的点拖动单元格,就会看到每行中的引用已更新。

如果您使用$A$2来代替,那么您已经进行了绝对引用,并且引用不会更改 - 它们始终指向$A$2。您也可以参考$A2A$2以使列绝对和行相关,反之亦然。

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

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

+0

从OP Q开始,**它应该是整行**的单个公式(和您的解决方案更改公式 - 您将得到'= IF(A2 =“是”,“请在此解释”),然后' = IF(A3 =“是”,“请在此解释”)等等。)。仔细阅读。当然,我们都知道相关的公式和'$'标志 –

+0

@simoco嗨simoco - 我读它的方式不同。我以为他试图避免重写公式的工作,并认为他对Excel很新。如果他只是因为改变公式而受到美学冒犯,那么克里斯的回答是正确的,或者他可以使用R1C1风格。你的意图没有任何意义 - 我通常不会冷静下来,但是使用间接方式只是一个很明显的坏建议。我并没有试图开始一场战争 - 事实上,我仔细研究了你的答案,并发现一个人应该注意平衡,我的做法也是如此。 – maybeWeCouldStealAVan

+0

顺便说一下,'间接'做OP想要什么,所以我认为我的答案是正确的。我同意克里斯asnwer更好,但这并不意味着我的答案是不正确 –

0

也许你需要的东西是这样的:

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

1列到当前的左侧;

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

谢谢,这就是我需要的!对不起,但我是新人,还不能投票。 – HoppyKamper

2

一个更简单的方法是使用

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

注意,使用INDIRECT创建Volitile功能,这会对性能产生影响。

相关问题