[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『HLookup』(やま)
Book("デイリーデータ")sheets("シャア")に =hlookup((DATE(Z5,AP5,BB5),'[マンスデータ.xls]執行役員'!$G$4:$CJ$11,-2,FALSE)) と言う式を立てました。 Book("マンスデータ")sheets("執行役員")のG4:CJ11の範囲から 当てはまる日付を探し、(日付は11行に書いてある) 当てはまった列の2つ上の列を表示としたいんです。 11行の日付の算出法は=DATE(A2,E2,IF(J2=1,1,16))となっています。 -2と言うのがおかしいような気がするんですがどう修正すればいいのでしょうか?
検索範囲の11行目に日付データがあり、検索対象が一致した場合、 その2行上のデータを表示させたい・・ということのようですが、 HLOOKUP関数は検索範囲の一番上の1行目のデータを対象に検索し、 それより下の行のデータを表示させるものですから、 今回のような場合は、INDEXとMATCHを組み合わせて使います。
=INDEX($G$4:$CJ$11,6,MATCH(DATE(Z5,AP5,BB5),$G$11:$CJ$11,0))
のようなことでどうでしょうか。 なお、検証のためブック名とシート名は省略してありますのでご了承下さい。 (sato)
#N/Aになったのですが範囲の中に結合セルがあるとこうなりますか?? 一応結合セルあるんですが、最左列は全部揃っています。
どこに結合セルがあるか分かりませんが、 当方の検証では結合セルがあってもよさそうですが・・・ 少なくともエラーにはなりませんでした。 あるいは検証が不十分なのかもしれませんが。
それよりも、検索値 DATE(Z5,AP5,BB5) が $G$11:$CJ$11 にない場合は、 #N/A となります。 DATE(Z5,AP5,BB5) はシリアル値ですから、$G$11:$CJ$11 もシリアル値でないといけません。 (sato)
>DATE(Z5,AP5,BB5) はシリアル値ですから、$G$11:$CJ$11 もシリアル値でないといけません 日付が入っているところはユーザ定義でdとなっています。 =INDEX($G$4:$CJ$11,6,MATCH(DATE(Z5,AP5,BB5),$G$11:$CJ$11,0)) ~~~~~~~~~~~~~~~~ デバックでエアラーの過程を調べたら~~~~~~~の部分が38614と表示されていました。 ここが問題なんでしょうか??
その 38614 というのがシリアル値です。 38614 は 2005/9/19 ということになりますね。 したがって $G$11:$CJ$11 の部分もシリアル値でないといけないということです。 ユーザー定義で d とされているということであればおそらくシリアル値になっていると思いますが、 $G$11:$CJ$11の部分の書式を一度標準に戻してみてください。 そこに 38614 というデータがなければ一致するデータがないということでエラーとなります。
MATCH(DATE(Z5,AP5,BB5),$G$11:$CJ$11,0) この部分を選択してF9を押すとエラーになりますか?
あとは、結合セルのある部分を一度結合をはずしてみてください。 それで表示させたら結合セルが原因だということになりますが。 (sato)
すいません38641の間違いで10月16日です。 日付部分を標準に戻したところ38641ありました。
MATCH(DATE(Z5,AP5,BB5),$G$11:$CJ$11,0)
この部分を選択してF9を押すとエラーになります。
最初にお断りしたように、お示しした式はブック名、シート名を省略してあります。 実際には、
=INDEX([マンスデータ.xls]執行役員!$G$4:$CJ$11,6 ,MATCH(DATE(Z5,AP5,BB5),[マンスデータ.xls]執行役員!$G$11:$CJ$11,0))
のようになろうかと思いますが、その点はいかがでしょうか。 (sato)
>最初にお断りしたように、お示しした式はブック名、シート名を省略してあります。 もちろんBookにリンクさせてやっています。
出来ました。 $G$11:$CJ$11 ~~~~~~~~~~~~この部分$G$4:$CJ$11にしてました お騒がせしました&ありがとうございました。
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.