Excel 列中給定字串的最後一次出現

Excel 列中給定字串的最後一次出現

我使用 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)))

相關內容