dポイントプレゼントキャンペーン実施中!

ワークシートが2枚あります。

<ワークシートA>(日付の計算)
2009/2/7|=A1-14|ほげ1
2009/2/8|=A2-14|ほげ2
2009/2/8|=A3-14|ほげ3
・・・

<ワークシートB>(ほげの検索)
=vlookup(today(),ワークシートA!B1:C500,2)


このようにして、ワークシートBにて"ほげ?"を表示しようとすると
表示されません。


どなたか、原因及び解決策を分かる方がいらっしゃったら
お教えください。

A 回答 (2件)

#1です。



>vlookup(today(),ワークシートA!$B$1:$C$500,2)⇒「0」を返します。
>vlookup(today(),ワークシートA!$B$1:$C$500,1)⇒「-14」を返します。

なんとなく原因が分かった気がします。
1行目から500行目まで全ての行にデータが入っているわけではないのですね?
例えばA1からA100までは日付が入っているけど、A101からA500は空欄。
こんな感じになっているのでは?

これだと、B1からB100までは順当に計算されるのに、B101以降は-14になると思います。おそらくこれが返ってきているのでしょう。
vlookupでtrue指定をすると昇順にソートされている必要があることはご存知かと思いますが、これではソートされていないのと同じですね。

ですので、例えば
B1 =IF(A1="","",A1-14)
というような感じで、A列が空白なら計算しないようにするというのはどうでしょうか?
    • good
    • 0
この回答へのお礼

返事が遅くなり申し訳ありません。
ご指導して頂いた方法でうまくいきました。

どうもありがとうございました。

お礼日時:2009/02/20 22:38

「表示されません」というのが具体的にどういう問題なのか分かりませんが…


(違う値になるのかエラーなのか)

まず、参照範囲は絶対指定した方が良いでしょうね。
それからオプションのfalseも指定した方が良いかと思います。

あと気になるのは、シートAの方で2/8が2回あるのですが、それも意図しない表示になっている原因ではありませんか?


以上、確認してみてください。

この回答への補足

迅速な対応有難うございます。
>「表示されません」というのが具体的にどういう問題なのか分かりませんが…
vlookup(today(),ワークシートA!$B$1:$C$500,2)⇒「0」を返します。
また
vlookup(today(),ワークシートA!$B$1:$C$500,1)⇒「-14」を返します。


>それからオプションのfalseも指定した方が良いかと思います。
vlookup(today(),ワークシートA!$B$1:$C$500,2,FALSE)⇒「#N/A」
vlookup(today(),ワークシートA!$B$1:$C$500,1,FALSE)⇒「#N/A」
となります。


>あと気になるのは、シートAの方で2/8が2回あるのですが、それも意図しない表示になっている原因ではありませんか?

伝わりにくくて申し訳ありません。この2/8の重複はわざとです。


2009/2/7|=A1-14|ほげ1
2009/2/8|=A2-14|ほげ2
2009/2/8|=A3-14|ほげ3
2009/2/9|=A4-14|ほげ4
2009/2/10|=A5-14|ほげ5
2009/2/12|=A6-14|ほげ7

のように、日付は昇順で並ぶものの、複数ある場合を想定しています。




以上、よろしくお願い致します。

補足日時:2009/02/07 04:01
    • good
    • 0

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