• ベストアンサー

VLOOKUPで返った値が不満足

ビギナー以前のイントロダクションです。宜しくお願い致します。 OS・・・Win95 EXCEL・・・Ver97 社員データベースをシート1に、個人用(一人一枚プリントアウト用)をシート2に作成しています。 VLOOKUPで大体のデータは返るのですが、 生年月日などの日付が、データベースのセルが空欄の場合、何故か "M33.01.00"と表示してしまいます。 その他データベースの空欄のセルに対しても、"0"を表示してしまうので、これを" "と表示させたいのです。 良き関数を教えて下さい。

質問者が選んだベストアンサー

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.4

A1が未入力なら答えは無し($A$1="") →検索値が無ければ答えは無し(ISERROR) →検索値が未登録なら答えは無し(ISBLANK) の順に判定を行っています。検索値が見つからなかった場合を追加してみました。 『範囲』という範囲名が定義されていれば下記でいいですが、範囲名でなければ『データベース!範囲』を書いて下さい。 =IF($A$1="","",IF(ISERROR(VLOOKUP($A$1,範囲,4,FALSE)),"",IF(ISBLANK(VLOOKUP($A$1,範囲,4,FALSE)),"",VLOOKUP($A$1,範囲,4,FALSE))))

onekosama
質問者

お礼

ありがとうございました!nishi6さんをはじめ、Imogashiさん、_masaharuさんのおかげで、解決しました! また質問させていただきますので、宜しくご指導くださいませ。

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.3

>何故か"M33.01.00"と表示してしまいます。 皆がご存知で私が言うのは恥ずかしいぐらいですが、エクセルは日付は西歴1900年1月1日をスタート第1日としてそれ以後の経過日数で統一的に全て処理しているからですよ。1900年は明治33年です。表示を年号+2桁 年+月+日にしておられるから、日付けセルの空白セルは「0」扱いになり、日付的にはM33.01.00と表示されるわけです。

onekosama
質問者

お礼

回答、ありがとうございます。 なるほど、良く分かりました。空白セルを「0」と認識させなければ、これは解決するのでしょう・・ね・・・?

すると、全ての回答が全文表示されます。
  • _masaharu
  • ベストアンサー率20% (4/20)
回答No.2

こんにちは。EXCELビギナーです。 私の場合は以下のようにします。 IF(参照するセル="","",VLOOKUP…)と IF関数で参照するセルが空欄なら空欄、違うならVLOOKUP関数

onekosama
質問者

補足

おお、早速の回答、ありがとうございます。 今、入力している状態を シート1(データベース) A2・・・検索コード(個人番号) B2・・・氏名 C2・・・ふりがな D2・・・入社年月日 などなど シート2(個人帳票) A1・・・検索コード M2・・・入社年月日 として、シート2のA1に検索コードを入力すると M2のところには =IF($A$1=””,””,VLOOKUP($A$1,データベース!範囲,4,FALSE)) と返して、「入社年月日」が表示されます。 問題は、シート1のD2のセルが空欄のときに起こります。 上記計算式を添削して下さい。宜しくお願いいたします!

すると、全ての回答が全文表示されます。
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

今は  =VLOOKUP(*****) となっていると思いますが、この算式を  =IF(ISBLANK(VLOOKUP(*****)),"",VLOOKUP(*****)) と変えてみてください。検索結果のセルがブランクなら何も表示しません。

onekosama
質問者

補足

回答、ありがとうございます。 ちょっと試してみたのですが、容量の小さい自分の頭ではどうにもできませんでした。そこで、下記に計算式を記載しますので、修正していただけますでしょうか? =IF($A$1=””,””,VLOOKUP($A$1,データベース!範囲,4,FALSE)) シート2のA1に、シート1(データベース)A1にあるコードを入力すると、名前などを返してくれるようにしています。 宜しくお願いいたします!

すると、全ての回答が全文表示されます。

関連するQ&A