我不確定這是否可行,但它應該是。我想將公式應用於整個列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更好,但這並不意味着我的答案是不正確 –