• ベストアンサー

エクセルのデーター抽出で悩んでおります、皆様のお知恵をお貸しください。

エクセルのデータ抽出で悩んでおります、皆様のお知恵をお貸しください。 データベースとして作ってある表で、”列A”に入っている日付以上(形式2009/11/27)、”列B”に入ってる日付以下と言う条件で、”列D”から”列R”に入っている日付データを探し、”列C”に入れるという事をしたいのですが、出来るだけ簡単な方法があればお教え下さい。 〔列A2009/11/27〕 〔列B2011/1/27〕 〔列CXXXX/XX/XX〕 〔列D~Rは日付データ〕 列Aに入っている日付以上、列Bに入っている日付以下という条件で、列D~列Rに入っている日付データの中から条件に合致するデータを探し、空白の”列C”に合致したデータを入れるというができますでしょうか。 (あくまでもデータベースとして表が出来ているので、並べ替えてオートフィルタ機能を使うという事はできません。)

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

  • ベストアンサー
  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.1

複数のセルが条件を満たす場合が示されていませんので 一番大きい日付(ちょっと表現が変)を表示させるとすると 普通に HLOOKUP関数でできますよ  =HLOOKUP(B1,D1:R1,1,TRUE) これで、B1の日付以下の日付を表示できますので、この値がA1セルの値よりも大きいかを比較すればOK  =IF(HLOOKUP(B1,D1:R1,1,TRUE)<A1,"",HLOOKUP(B1,D1:R1,1,TRUE)) あとは、HLOOKUPで条件に合う日付データが見つからなかった場合のエラー処理をすればOK ISERROR関数を使うと良いでしょう ※ 使用する関数の詳細は Excelのヘルプを参照してください

shknana
質問者

お礼

ご回答ありがとうございます。 早速試してみましたが、どうもうまくいきません。 私の入力の仕方が悪いのかな。

shknana
質問者

補足

ありがとうございます!!。 再度やり直してみたら出来ました。 しかもこんな簡単な式で出来るなんて!!。 素晴らしいです。 大変申し訳ありませんが、お願いが >日付データが見つからなかった場合のエラー処理をすればOK ISERROR関数を使うと良いでしょう。 条件が合わないときに”-”を返すとした場合は、どのような式になるのでしょうか是非ご教授下さい。お願い致します。

その他の回答 (4)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.5

条件に合致するデータが複数(重複した日付があるという意味ではありません)ないかについての返答や、具体的な日付データが提示されていないので回答しにくいのですが、D~R列の日付データがごく普通に昇順で入力されているなら、配列数式を使うよりも以下のような関数で表示させたほうが計算負荷が少なくお勧めです。 =IF(INDEX(D1:L1,MATCH(B1,D1:R1,1))>=A1,INDEX(D1:L1,MATCH(B1,D1:R1,1)),"なし") *このようなご質問では、エクセルのバージョンや実際に入力されているデータによって使用する数式が変わりますので、リストのレイアウトやデータの内容をできる限り具体的に例示されたほうが的確な回答が得られます。 特に配列数式を使う必要がある場合は、数式が複雑になりますので(数式の修正が難しいので)、項目名なども含めた表のレイアウトを提示されたほうがよいと思います。

shknana
質問者

お礼

ご回答頂きありがとうございました。 思っていた事が出来ました。 初めての質問で不備な点があり申し訳ございません。 今後質問をさせて頂く際には、ご忠告を頂いた点を考慮して投稿したいと思います。

noname#204879
noname#204879
回答No.4

[回答番号:No.3この回答へのお礼]へのコメント、 》 データの重複はありません。 それよりも、「条件に合致するデータ」が複数あった場合はどうするのかを心配しておりました。複数はないということが前提ならば次の配列数式で如何かと。 {=IF(MAX((D1:R1>=$A1)*(D1:R1<=$B1)*(D1:R1)),MAX((D1:R1>=$A1)*(D1:R1<=$B1)*(D1:R1)),"None")}

shknana
質問者

お礼

ご回答頂きありがとうございました。 思っていた事が出来ました。 初めての質問で不備な点があり申し訳ございません。 式の内容を理解しようと頑張っておりますが、解読できていません。 トホホ。

noname#204879
noname#204879
回答No.3

》 列D~列Rに入っている日付データの中から条件に合致するデータ 》 を探し、空白の”列C”に合致したデータを入れる… その「合致したデータ」の例を示してください。 具体例(サンプル)を示さない質問は、回答者に少し不親切(乱暴?)とは思いませんか?

shknana
質問者

お礼

ご回答ありがとうございます。 不親切?でしたか。 申し訳ございません。 質問の文にあるように、DからRにも2009/11/27のような形式で日付の違うデーターが入っていると言う意味です。データの重複はありません。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

>列Aに入っている日付以上、列Bに入っている日付以下という条件で、列D~列Rに入っている日付データの中から条件に合致するデータを探し、空白の”列C”に合致したデータを入れるというができますでしょうか。 具体的なセル番地が明記されていませんが、条件に該当するデータが1つしかない(複数ない)という設定でよいのでしょうか?

shknana
質問者

補足

ご回答ありがとうございます。 データベースになっておりますので、下記の様なイメージです。 A1*/*/* B1*/*/* C1空白 D1*/*/*~R1*/*/* A2*/*/* B2*/*/* C2空白 D2*/*/*~R2*/*/* A3*/*/* B3*/*/* C3空白 D3*/*/*~R3*/*/*                       ゛                       ゛

関連するQ&A