電子書籍の厳選無料作品が豊富!

皆様こんにちは。
Excel ワークシート関数で参照セルのアドレスを固定値ではなく、他のセルの値 (式の計算結果) を使用して動的に記述したいのですが、可能でしょうか。
一例ですが、

=VLOOKUP("山田 花子",Sheet2!A2:C100,3,FALSE)

という式の参照先アドレス範囲開始行「2」を固定値ではなく、他のセルの値を使用して動的に記述したいのです。
また、参照先の終端である、「100」についても固定値ではなく、有効データ領域の終端を動的に取得する方法 (VBA の Worksheet.UsedRange.Rows.Count または Worksheet.UsedRange.Rows.Address に相当) が知りたいと思います。

どちらも、計算式そのものをVBAで動的に出力するのは容易なのですが、出力されたブックを手作業で編集する際の利便性も考慮すると、ワークシート関数だけで解決する方法も知っておいたほうがよいと思っています。

ご存知の方、コメントを頂けると幸いです。

A 回答 (2件)

A列の入力済みの最下行が文字列の場合


=MATCH("",A:A,-1)

最下行が数値の場合
=MATCH(MAX(A:A)+1,A:A,1)

で、最終行が取得できます。
取得された数値を、関数でセル範囲の指定に使うためにはINDIRECT関数を用います。
今夜は今から飲み会なのであとはINDIRECT関数を検索してみてください。
成功を祈ります。では。
(*^∇^)ノロ"ロヾ('∇'*) Cheers!!
    • good
    • 0
この回答へのお礼

手掛かりが得られたので、後は何とかなりそうです。
ありがとうございました。

お礼日時:2009/04/17 00:03

一例です。


仮にSheet2のリストは1行目から定義、A1に開始行値としています。
=VLOOKUP("山田 花子",INDIRECT("Sheet2!A"&A1&":C"&COUNTA(Sheet2!A:A)),3,FALSE)
    • good
    • 2
この回答へのお礼

式が複雑化すると、可読性が下がるのが泣き所ですが、目的のものを作り込むのは何とかなりそうです。
ありがとうございました。

お礼日時:2009/04/17 00:02

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!