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をOFFSET($A$3,0,0,COUNTA($A$3:$A$1000),1)

ダイナミック定義範囲を使えば、ちょっと凝ったこともできますマイクロソフトサポートサイト

答え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)))

関連情報