次のように、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)))