- 締切済み
vlookupとIndirectを使って別シートを検索
C3に検索値が入力されます。 H3には =IF($C3="","",VLOOKUP($C3,INDIRECT("06!$H$2:$K$10000"),2,FALSE)) と入力した所、#N/Aとなってしまいました。 06はシート名です。H列~K列までにデータが入力されており、 現在のシートのC3に検索値を入力すると、06のから値をかえすようにしたいと考えています。 お力を貸してください。お願いします。 分りにくい場合は言ってください。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- pbforce
- ベストアンサー率22% (379/1719)
C3とシート06のH列は同じ形式のものでしょうか? 例えば文字列と数値のようにちがうものだと、見つからないかもしれません。
- imogasi
- ベストアンサー率27% (4737/17070)
下記のようなことをやりたいのなら下記を参照。 (VLOOKUPの参照表の差し替え的利用。INDIRECTの利用) Sheet2に A1:B3 a xx b yy c zz Sheet3のA1:B3(Sheet2と形式的に同じ範囲) i uu a dddddd c fffffff Sheet2とSheet3と同じアイテムa,cガあります。 ーー Sheet1のB1セルに、Sheet2かSheet3かどちらかの文字列を入れる。 A2以下に検索値を入れるとして B2セルに =VLOOKUP(A2,INDIRECT($B$1&"!$A$1:$b$3"),2,FALSE) と入れる。 ーー Sheet1のA2にAと入れてもB1がSheet2なら、 Sheet1のA1:B3 Sheet2 a xx c zz Sheet3なら Sheet1のA1:A3 Sheet3 a dddddd c fffffff 質問と違うかもしれないが、何かの際に役立つかも。
- nobu555
- ベストアンサー率45% (158/345)
>#N/Aとなってしまいました 範囲に検査値がないとエラーが返ります。 VLOOKUPで#N/Aが表示されるについて、こちらを参考に http://www.excel.studio-kazu.jp/lib/e1tw/e1tw.html どこかに下記数式を入力して、 #N/Aなら、検査値が無いか不一致です。 数字が帰って場合は、行番号になります。 =MATCH(C3,'06'!H:H) INDIRECTは、不要です。 =IF($C3="","",VLOOKUP($C3,'06'!$H$2:$K$10000,2,FALSE)) で問題ありません。
補足
INDIRECTは不要だったんですね。 =MATCH(C3,'06'!H:H) を実行してみたら#N/Aでした。 式はきっとnobu555さんのおっしゃるのであっているはずです。 問題点はC3の検索値の気がします。 C3は入力規則で06からリストとして入力しているのですが、ここがまずいのでしょうか・・・ 06のデータはA列~T列までデータでぎっしり(管理ソフトから抜き出しました)なのでデータがないということはないのですが・・・
- pbforce
- ベストアンサー率22% (379/1719)
INDIRECTは必要ないと思います。
補足
すべて文字列にして実行しましたが、 やはりできませんでした。 かなり不思議な状態なので、そもそもこのデータに問題があるのでは?と感じています。明日、システムを請け負った会社に問合せして問題が解決できるか問合せてみます。