我使用 LOOKUP 函數來尋找給定字串在提供的列中的最後一次出現,如下所示:
LOOKUP(A3;Runs!D3:D6;Runs!A3:A6)
然而,向量中的邊界是硬編碼的:Runs!A3:A6。我希望將此值動態設定為包含該列資料的最後一個儲存格。我發現這個公式給了最後一行索引:
COUNTA(Runs!A:A)
這個其他函數為我提供了單元格引用(單元格的內容),但我似乎無法將其與 LOOKUP 公式合併:
INDIRECT("Runs!A"&COUNTA(Runs!A:A))
有沒有辦法動態設定 LOOKUP 的上限?
編輯:行範圍中沒有空白行。
問候
答案1
我明白了——問題是讓你的動態範圍作為 LOOKUP 中的範圍規範工作。你就快到了。嘗試這個:
LOOKUP(A3;INDIRECT("Runs!D3:D"&COUNTA(Runs!D:D));Runs!A3:A6)
答案2
offset() 函數將解決您的問題
將 Runs!A3:A6 替換為偏移量($A$3,0,0,COUNTA($A$3:$A$1000),1)
您可以對動態定義範圍感到有點好奇http://support.microsoft.com/kb/830287
答案3
我最終這樣做了。謝謝大家的評論,fixer1234的回答特別有用。 LOOKUP 沒有給出準確的結果,因此我將其更改為 INDEX/MATCH 對。還新增了 N/A 檢查。
IF(ISNA(INDEX(INDIRECT("Runs!A3:A"&COUNTA(Runs!A:A)), MATCH(A3, INDIRECT("Runs!D3:D"&COUNTA(Runs!D:D)), 0))), "", INDEX(INDIRECT("Runs!A3:A"&COUNTA(Runs!A:A)), MATCH(A3, INDIRECT("Runs!D3:D"&COUNTA(Runs!D:D)), 0)))