ビギナー以前のイントロダクションです。宜しくお願い致します。

OS・・・Win95
EXCEL・・・Ver97

社員データベースをシート1に、個人用(一人一枚プリントアウト用)をシート2に作成しています。

VLOOKUPで大体のデータは返るのですが、
生年月日などの日付が、データベースのセルが空欄の場合、何故か
"M33.01.00"と表示してしまいます。
その他データベースの空欄のセルに対しても、"0"を表示してしまうので、これを" "と表示させたいのです。

良き関数を教えて下さい。

このQ&Aに関連する最新のQ&A

A 回答 (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))))
    • good
    • 0
この回答へのお礼

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

お礼日時:2002/03/14 15:35

>何故か"M33.01.00"と表示してしまいます。


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

回答、ありがとうございます。

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

お礼日時:2002/03/13 23:27

こんにちは。

EXCELビギナーです。
私の場合は以下のようにします。

IF(参照するセル="","",VLOOKUP…)と
IF関数で参照するセルが空欄なら空欄、違うならVLOOKUP関数

この回答への補足

おお、早速の回答、ありがとうございます。

今、入力している状態を
シート1(データベース) A2・・・検索コード(個人番号)
B2・・・氏名
C2・・・ふりがな
D2・・・入社年月日 などなど
シート2(個人帳票) A1・・・検索コード
M2・・・入社年月日
として、シート2のA1に検索コードを入力すると
M2のところには
=IF($A$1=””,””,VLOOKUP($A$1,データベース!範囲,4,FALSE))
と返して、「入社年月日」が表示されます。

問題は、シート1のD2のセルが空欄のときに起こります。

上記計算式を添削して下さい。宜しくお願いいたします!

補足日時:2002/03/13 22:42
    • good
    • 0

今は



 =VLOOKUP(*****)

となっていると思いますが、この算式を

 =IF(ISBLANK(VLOOKUP(*****)),"",VLOOKUP(*****))

と変えてみてください。検索結果のセルがブランクなら何も表示しません。

この回答への補足

回答、ありがとうございます。

ちょっと試してみたのですが、容量の小さい自分の頭ではどうにもできませんでした。そこで、下記に計算式を記載しますので、修正していただけますでしょうか?

=IF($A$1=””,””,VLOOKUP($A$1,データベース!範囲,4,FALSE))

シート2のA1に、シート1(データベース)A1にあるコードを入力すると、名前などを返してくれるようにしています。

宜しくお願いいたします!

補足日時:2002/03/13 23:05
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q「リレーショナルデータベース」と「データベース」

「リレーショナルデータベース」と「データベース」は何が違うのでしょうか?
accessはリレーショナルデータベースとの事ですが,普通のデータベースと何が違うのでしょうか?

[データベースはこうだけど、リレーショナルデータベースはこうだよ!]
って教えて頂ければ助かります。

Aベストアンサー

データベースというのはデータの集まりのことで、ソフトウエアのことではありません。データベースという用語は法律でも定義されています。
著作権法第2条第1項十の三
 データベース 論文、数値、図形その他の情報の集合物であつて、それらの情報を電子計算機を用いて検索することができるように体系的に構成したものをいう。

リレーショナルデータベースとは複数のデータベースを組み合わせて(関連付けて)一体として管理するデータベース構造(スキーム)のことであり、組み合わされる個々のデータベースのことはテーブルと呼びます。もちろんリレーショナルデータベースもデータベースの一種です。上記の法律の条文に照らしてみれば明らかでしょう。
EXCELのような表計算ソフトでもデータベース(テーブル)を構築することはできますが、リレーショナルデータベースを構築するには専用の管理機構が必要で、表計算ソフトでは構築不能です。

Accessのようなソフトはこのデータベースを管理・操作するためのソフトウエアであり、分類上「データベースソフト」あるいは「DBMS(データベース・マネジメントシステム)」と呼ばれます。素人向けはデータベースソフト、業務用はDBMSと呼ぶのが普通です。なお、マイクロソフトではAccessのことを、一般向けにはデータベースソフトウエアと呼び、技術者向けにはDBMSと呼んでいるようです。これらのソフトウエアで管理・操作する対象がデータベースでありリレーショナルデータベースなのであって、Accessなどのソフトウエアがデータベースなのではありません。

パソコンが仕事で使われることの少なかった初期(主にホビー・家庭用途)は、パソコン上で動作するデータベースソフトは「カード型」などのリレーショナル機能のないものが主流でした。住所録管理程度であればこれで十分でしたし、当時の表計算ソフトは現在のような大量データは扱えませんでしたから(最大500行とか)、Windows普及以前はデータベースソフトと言えばリレーショナル機能のないカード型ソフトが家庭や零細企業では普通に使われていました。
リレーショナルデータベースがあっても高価で(ビジネス用で一番普及していたdBASEは定価268,000円だったはず)、システム構築も簡単ではないので、システム化の進んだ大手企業やその関連会社でもなければ導入していないのが普通だったと思います。

データベースというのはデータの集まりのことで、ソフトウエアのことではありません。データベースという用語は法律でも定義されています。
著作権法第2条第1項十の三
 データベース 論文、数値、図形その他の情報の集合物であつて、それらの情報を電子計算機を用いて検索することができるように体系的に構成したものをいう。

リレーショナルデータベースとは複数のデータベースを組み合わせて(関連付けて)一体として管理するデータベース構造(スキーム)のことであり、組み合わされる個々のデータベー...続きを読む

Q指定セルが空欄の時、上のセルの値で計算するには?

皆様、よろしくお願いいたします。

VLOOKUPで使う固定データを持ちます。
セル[A20からA25]まで人名、[B20からB25]まで時間。

例:
[A20]:aさん  [B20]:0:05
[A21]:bさん  [B21]:0:10
[A22]:cさん  [B22]:0:15
[A23]:dさん  [B23]:0:20
[A24]:eさん  [B24]:0:25
[A25]:fさん  [B25]:0:30


セル[A1からA5]まで人の名前、[B1からB5]まで時間を入力する欄を持ちます。
しかし入力されるデータ数は、その都度違います。

例1:
ある時は、
[A1]:aさん  [B1]:0:30
[A2]:bさん  [B2]:0:45
[A3]:cさん  [B3]:1:00
[A4]:dさん  [B4]:1:30
[A5]:eさん  [B5]:2:00

例2:またある時は、
[A1]:cさん  [B1]:0:30
[A2]:dさん  [B2]:1:00
[A3]:aさん  [B3]:1:45
など


データの入力される数はその都度違います。
その時、一番下の人の時間からVLOOKUP用データの時間を引いた値を「A10」セルに入力したいです。

例1では、「B5」の値 - VLOOKUP用データ eさんの0:25、つまり [2:00 - 0:25]の値をA10に。
例2では、「B3」の値 - VLOOKUP用データ aさんの0:05、つまり [1:45 - 0:05]の値をA10に。

A5(or B5)から上方向に順番にデータが入っているかの判別が必要だと思いますが、うまく出来ませんでした。

どなたかご教授いただけたらと思います。


よろしくお願いいたします。

皆様、よろしくお願いいたします。

VLOOKUPで使う固定データを持ちます。
セル[A20からA25]まで人名、[B20からB25]まで時間。

例:
[A20]:aさん  [B20]:0:05
[A21]:bさん  [B21]:0:10
[A22]:cさん  [B22]:0:15
[A23]:dさん  [B23]:0:20
[A24]:eさん  [B24]:0:25
[A25]:fさん  [B25]:0:30


セル[A1からA5]まで人の名前、[B1からB5]まで時間を入力する欄を持ちます。
しかし入力されるデータ数は、その都度違います。

例1:
ある時は、
[A1]:a...続きを読む

Aベストアンサー

keithin さんの回答の方がいいと思いますが・・・

=IF(A1="","",LOOKUP(1,B1:B5)-VLOOKUP(LOOKUP(1,B1:B5,A1:A5),A20:B25,2,0))
B列が24時間未満ということで、

Q番号入力後に データベースシートから自動入力

エクセルの関数で、 下記、ご助言願います。


エクセルのシートで、 番号と項目名(1対1対応)を記載したデータベースシートを作ります。 
別シートで、番号を入力すると 先程のデータベースシートを参照して、(番号入力をしたセルの横のセルに) 入力番号に対応する項目名を自動で入力するようにしたいと思います。 関数で可能でしょうか?

例えば、 
データベースシート: 
01 りんご 
02 みかん
03 バナナ

入力シート
03 <ばななが自動入力>


よろしくお願いいたします。

Aベストアンサー

VLOOKUPで行けるでしょう

VLOOKUP関数の使い方
http://www.iwaseh.com/TSU06/nyuumon2b/09/nyuumon2-09.pdf

Qフォームでデータベースの内容を表示するには?

VBA初心者です。
データベースの入力用にフォームを作成しました。
登録コマンドボタンをクリックすると、フォームに入力した内容が、データベースの各項目に反映されるようになっています。
このフォームでは、いくら各項目に入力しても、登録ボタンを押さない限り、データベースには反映されません。もちろんフォームからこれまで入力したデータベースの内容は見ることができません。
しかし先日、Excelの文書件名簿ソフトで、項目1つ1つ入力するごとに、その都度データベースに反映されていくものがありました。
「次のページ」コマンドボタンはありますがこれを押す前にすでにフォームに入力した項目はデータベースに反映されています。
「前のページ」ボタンもあり、これを押すとこれまで入力してきたデータが順番にフォームで見ることができます。
このようなフォームはどのように作ればよろしいでしょうか?

Aベストアンサー

テキストボックス等のイベントでシートに書き込んでいるのでしょう。
この例ではテキストボックスに書き込んで、Enterを押したときセルに書き込みます。
Private Sub TextBox2_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
ActiveSheet.Cells(Val(TextBox1.Value), 1).Value = TextBox2.Value
End Sub
こちらの場合は、1文字入力する毎にセルに書き込みます。
Private Sub TextBox2_Change()
ActiveSheet.Cells(Val(TextBox1.Value), 1).Value = TextBox2.Value
End Sub
ただ、「やっぱり止めた」という時にシートの方のデータを消去する処理が必要になるので、あまりお勧めできません。
フォームからこれまでのデータを見るのは、umineko315さんがシートに書き込む操作の逆の操作を行っているものです。

テキストボックス等のイベントでシートに書き込んでいるのでしょう。
この例ではテキストボックスに書き込んで、Enterを押したときセルに書き込みます。
Private Sub TextBox2_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
ActiveSheet.Cells(Val(TextBox1.Value), 1).Value = TextBox2.Value
End Sub
こちらの場合は、1文字入力する毎にセルに書き込みます。
Private Sub TextBox2_Change()
ActiveSheet.Cells(Val(TextBox1.Value), 1).Value = TextBox2.Value
End Sub
ただ、「やっぱ...続きを読む

QAccessでのクエリーデータ表示で重複データ非表示できますか?

Accessでのクエリー表示で重複データを非表示にする方法はありますでしょうか?

Aベストアンサー

クエリプロパティの「固有の値」を「はい」にしてください。
クエリプロパティはクエリをデザインビューで開いて右クリックで出てきます。


このカテゴリの人気Q&Aランキング

おすすめ情報