プロが教えるわが家の防犯対策術!

LOOKUP関数を以下のように複数セルにわけて文字列として配置します。

A1:LOOKUP(AL17,'C:\Documents and Settings\My Documents\ファイルA.xls]
A2:シート1
A3:'!$A$3:$A$200,'C:\Documents andSettings\My Documents\.xls]
A2:シート1
A4:'!$B$3:$B$200)

A1からA4までを文字列結合してA5に表示します。
A5:=A1&A2&A3&A2&A4

その上で、A5の数式をA6にて処理したいのですが、うまくいきません。
A6:indirect(A5)
のように書いてもエラーとなります。

どなたか打開策を教えてください!

#今回はlookup関数の参照するシート名を動的に表現したかったため、
  わけて記述し、文字列結合するという形式にしています。
  (ここでいうA2がシート名)

A 回答 (2件)

> #今回はlookup関数の参照するシート名を動的に表現したかったため、


>   わけて記述し、文字列結合するという形式にしています。
A1: Book1.xls ... ファイル名
A2: Sheet1 ...... シート名
A3: 5555 ........ 検査値
A4: A1:A12 ...... 検査範囲
A5: B1:B12 ...... 対応範囲
とすると、答は
A6: =LOOKUP(A3,INDIRECT("["&A1&"]"&A2&"!"&A4),INDIRECT("["&A1&"]"&A2&"!"&A5))
かなぁ~。
    • good
    • 0

検証してありませんが、式を表す文字列を式として実行するユーザー定義関数です。

使い方の例は、参考URLをご覧下さい。
Function myEvaluate(target As String) As Variant
myEvaluate = Application.Evaluate(target)
End Function

参考URL:http://okwave.jp/qa4238289.html
    • good
    • 1

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