2014-01-17 83 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功能,這會對性能產生影響。

相關問題