• ベストアンサー

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

エクセルのデータ抽出で悩んでおります、皆様のお知恵をお貸しください。 データベースとして作ってある表で、”列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

  • Excel 複数の項目合致するデータを抽出したい

    是非、よろしくお願いいたします。 以下の状況です。 sheet1には A、B、C、Dという4列があります。データは1000行くらいです。 sheet2には A、B、C、Eという4列があります。データは2000行くらいです。 この状況で、sheet1のD列の右に新しい列を作り、 「sheet1の(例えば)A1、B1、C1と合致する行のsheet2のE列データ」を、 sheet2のABC列範囲を検索して抽出したいのです。 項目が一つであればvlookup関数でできるものを「複数項目に合致」のため上手くいきません。 この3列のデータを結合して一つにしてみましたが、結合後のデータが16桁以上のため末尾が「0」になってしまい、正確に検索できません。 何か上記を可能にする方法はないでしょうか? よろしくお願いいたします。

  • エクセルのデータ抽出で。

    エクセルで以下のようのな、 3列を持つ表があるとします。 日付    コード   名称 20090901  001    Aさん 20090904  002    Aさん 20090905  003    Aさん 20090901  023    Bさん 20090902  024    Bさん 20090903  025    Bさん ----------------------------------------- まず名称でデータを絞り、 更に一番新しい日付のデータのみ取得したいのですが。 20090905  003    Aさん 20090903  025    Bさん VBAでもなんでもよいので、 抽出の仕方があればお願いします。

  • エクセルのデータ抽出について

    基本的な内容かもしれませんが、どうしてもわからないので教えてください。   A B C D 1 1 b 3 c 2 2 t 4 y 3 3 r 3 o 4 4 l 5 p 5 5 k 3 w 上記のようなデータベースがあったとします。このシートと異なるシートのあるセルにたとえば3と入力すると   A B C D 1 1 b 3 c 2 3 r 3 o 3 5 k 3 w のようにC列が3である行が抽出され、なおかつA列の昇順で並ぶということをしたいのですが、vlookup等ではうまくできません。 フィルタを使用せずに実現したいのです。お願いします。

  • エクセルの関数について教えてください

    パソコンは初心者です。 仕事でデータベースを作っているのですが、関数の使い方がわかりません。 A列に日付、B列に担当者名、C列には日付や文字データを入力しています。 D,E,F,G,H,I,J列などにもデータを入力してあります。 A列とC列でデータの合致しない行を抜き取って別の表に作り変えたいのですが、どんな方法が使いやすいですか? 関数を利用するのがよさそうな気はするのですが、マニュアル本など見ても、ぴったりの内容が見つかりません。 よろしくお願いします!

  • Excelでのデータ抽出

    Excelに複数シートがあり、各シートには以下の内容が記載されてます。  A列 伝票No.  B列 日付  C列 担当者  D列 型番    ・    ・    ・ B列で任意の日付を検索し該当する値があれば、その行(A~D…列)を別シートにコピーし抽出したいのです。 VBAを使ってやりたいのですがどうしたらよいでしょうか? よろしくお願いします。

  • Excel 重複データの番号を抽出

    Excel:Office2003 OS:WindowsXP excelのデータで A列 B列 1 A 2 B 3 A 4 C 5 D 6 A 7 A 8 B 9 B 10 C 以上のように並んでいるデータを以下の E列 F列 G列 H列 I列 A 1 3 6 7 B 2 8 9 C 4 10 D 5 ようにしたい場合はどのようにしたらいいのか教えてください。 マクロではなく関数で処理をしたいと思っています。 よろしくお願いします。

  • excelのデータ抽出

    縦軸の条件と横軸の条件からデータを抽出する方法を教えてください。 以下のような表があります。    A  B   C   D   E  ・・・・ 1    0.5  2.5  3.1  5.5 2 40   2  5   10  3 3 55 4 35 1行およびA列の値を別セルに入力して、クロスするデータを出したいのですが、例えば別セル(1)に40と入力し別セル(2)に5.5と入力すれば、別セル(3)に3と抽出したいです。 また、出来れば別セル(2)に入力する値が表にない場合、入力した値より大きな値で一番近い値を読み取れればベストなんですか。 例えば別セル(2)に5.4と入力した場合には5.5の列を抽出 なにか良い方法はありますか? よろしくお願い致します。

  • エクセル等でのデータ抽出

     こんばんは、愚生は、エクセルデータベースの全くの初心者でございます。以下の質問をさせていただきたく、ブログをたてたせてもらいました。 以下のようなA列に日付;B列に地名;C列に数値が載せたtableがございます。(行数は総計約5000程度まで続きます) A1: 2009/10/3, B1: 東京; C1: 12000 A2: 2009/10/3, B2: 大阪; C2: 10000 A3: 2009/10/3, B3: 名古屋; C3: 7000 A4: 2009/10/3, B4: 京都; C4: 3000 A5: 2009/10/3, B5: 金沢; C5: 500 A6: 2009/10/3, B6: 神戸; C6: 4000 A7: 2009/10/5, B7: 大阪; C7: 7000 A8: 2009/10/5, B8: 東京; C8: 8000 A9: 2009/10/5, B9: 京都; C9: 5000 A10: 2009/10/5, B10: 横浜 C10; 4000  A11: 2009/10/6, B11: 東京; C11: 9000 A12: 2009/10/6, B12: 大阪; C12: 7000 A13: 2009/10/6, B13: 名古屋; C13; 8000 A14: 2009/10/6, B14: 京都; C14: 4000 A15: 2009/10/6, B10: 横浜; C15: 5000 2009/10/3には計6個のデータがあります 2009/10/3には計4個のデータがあります 2009/10/6には計5個のデータがあります →   「各日にちごとに、C列の値が大きい順にベスト3ずつを選び、表示させたい訳でございます。」 A1: 2009/10/3, B1: 東京; C1: 12000 A2: 2009/10/3, B2: 大阪; C2: 10000 A3: 2009/10/3, B3: 名古屋; C3: 7000 」 A4: 2009/10/5, B6: 東京; C6: 8000 A5: 2009/10/5, B7: 大阪; C7: 7000 A6: 2009/10/5, B8: 京都; C8: 5000 」 A7: 2009/10/6, B9: 東京; C9: 9000 A8: 2009/10/6, B10: 名古屋 C10; 8000 A9: 2009/10/6, B11: 大阪; C11: 7000 」  もし、mysql (SQL server)等のデータベストソフトが必要な場合も、対処させていただきます。  それでは、よろしくお願い申し上げます。

  • エクセルで抽出の関数は?

      A B C   ----------- 1 A 1 あ 2 A 2 い 3 B 3 う 4 B 1 え 5 C 2 お 上記のようなA1からC5までの表があるとします。 例えばA6に「A」B6に「2」と入力した時に、C6に「い」と表示したいのですが、どのような関数を使って表示すればいいのですか? A列とB列の条件が合致するものをC列に表示する行を作成したいのです。教えてください。  

  • Excel データの抽出について教えて下さい。

    初めて質問させて頂きます。 Excelでデータの抽出と言ったらいいでしょうか・・・ 「一定の条件に当てはまった場合に、別のセルに数字を入力する」 というような処理をしたいのですが、データ量が多くて、 どのようにやったら効率がいいのか、頭を悩ませています。 例えば・・・       A列  B列 1行目  111   A 2行目  112   B 3行目  115   C 4行目  115   C 5行目  118   D といったようなデータが1500件ほどあります。 このデータを使って、A列の中で番号が2つ(又は3つ等)あるものに、      A列   B列  C列 1行目  111   A 2行目  112   B 3行目  115   C    1 4行目  115   C    1 5行目  118   D といった感じで決まった数字を表示する方法がないでしょうか? こんな説明でご理解頂けるかどうか、心配なんですが・・・。 いい方法をご存知の方がいらっしゃいましたら、力を貸して下さい。

専門家に質問してみよう