• ベストアンサー

エクセルで日付順で抽出

エクセルで関数を使用して、別シートから日付順で抽出するのは可能でしょうか? 1.シート1に、会員NO(A列)名前(B列)フリガナ(C列)~…購入チケットの種類(H列)チケットの残数(J列)チケット購入日(K列)チケット期限(L列)~ 2.シート2に、セルB2に会員NOを入力した時に、チケットの購入履歴【購入チケットの種類(A列)チケットの残数(B列)チケット購入日(C列)チケット期限(D列)】を日付順に抽出されるようにしたいです。 宜しくお願い致します。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

No.3です。 補足の >Sheet2のA4セル~C4セルはB2セルに会員noを入力すると履歴が出るような数式ですよね? に関して・・・ 質問にあるように、「残数」「購入日」「期限」だけを表示させる方法ですが、 大前提として、Sheet2の3行目に表示したいSheet1の項目名を入力させておく必要があります。 そうすれば前回の方法でSheet2の4行目以降に、Sheet1の3行目項目だけが表示されるはずです。 画像ではSheet1のB~H列項目を入れていませんし、Sheet2は3項目だけとしています。 実際の表のレイアウトに合わせて、Sheet2の3行目は表示したい項目名すべてを入力したうえで 前回の方法を試してみてください。 ※ 日付列に関しての表示形式は好みで変更します。m(_ _)m

rj3ojdnw03lhuap
質問者

お礼

丁寧に補足までして頂き、ありがとうございました。

その他の回答 (4)

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

元データがSheet1にあり、Sheet2の4行目以下にご希望のデータを表示したいなら以下のような数式になります。 日付順に並べ替えるチケット購入日はC4セルに以下の式を入力して下方向にオートフィルします。 =IFERROR(SMALL(INDEX((Sheet1!$A$2:$A$30=$B$2)*(Sheet1!$K$2:$K$30+ROW($K$2:$K$30)/100000),),ROW(1:1)+COUNTIF(Sheet1!$A$2:$A$30,"<>"&$B$2)),"") 同様にSheet1のH列の購入チケットの種類はA4セルに以下の式を入力して下方向にオートフィルします。 =IFERROR(INDEX(Sheet1!H:H,MATCH($C4,INDEX(Sheet1!$K$2:$K$30+ROW($K$2:$K$30)/100000,),0)),"") 同様にSheet1のJ列のチケットの残数はB4セルに上記の数式を(オートフィル)コピーし、Sheet1!H:Hの部分をSheet1!J:Jに変更してください(チケット期限も同じ処理をする)。 上記の数式は30行以内のデータから抽出する数式ですので、データ数に応じて適宜セル範囲を広げてください(ただし、必要以上に広げないこと)。

rj3ojdnw03lhuap
質問者

お礼

データ数が多くなってしまうと難しいですね。 回答ありがとうございました。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんにちは! >別シートから日付順で抽出するのは・・・ 「購入日」の日付順と解釈しています。 ↓の画像で上側が元データのSheet1・下側がSheet2とします。 作業用の列を設けるのが簡単だと思います。 Sheet2の3行目項目名はSheet1の項目と同じ項目名にしておきます。 Sheet1の作業列L2セルに =IF(OR(A2="",A2<>Sheet2!B$2),"",J2*10000+ROW()) という数式を入れフィルハンドルでずぃ~~~!っと下へコピーしておきます。 そしてSheet2のA4セルに =IFERROR(INDEX(Sheet1!$A:$K,MATCH(SMALL(Sheet1!$L:$L,ROW(A1)),Sheet1!$L:$L,0),MATCH(A$3,Sheet1!$1:$1,0)),"") という数式を入れ、C4セルまでフィルハンドルでコピー! B4・C4セルの表示形式は好みの「日付」にします。 最後にSheet2のA4~C4セルを範囲指定 → C4セルのフィルハンドルで下へコピー! これで画像のような感じになります。 ※ 「日付順」が「期限」にしたい場合は、作業列の数式内の >J2 を >K2 に変更します。m(_ _)m

rj3ojdnw03lhuap
質問者

補足

早速の回答ありがとうございます。 他の方がおっしゃっているようにSheet1でオートフィルタで抽出する事はできるのですが、Sheet2では会員noを入力したら、チケットの購入履歴や他のシートの情報(住所やその他情報)も全て見れるようにしたいのです。他のシートの情報は自分でできたのですが、チケット購入履歴はどうしてもわからなかった為、質問させていただきました。 教えていただいた数式を参考に入力してみたのですが、できませんでした。Sheet2のA4セル~C4セルはB2セルに会員noを入力すると履歴が出るような数式ですよね?私の理解力が乏しくて本当にすみません。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

フィルターオプションで データの抽出 http://www.eurus.dti.ne.jp/~yoneyama/Excel/filter3.htm その後、日付順に並び替え いずれもマクロで行えば、一瞬で処理できます。

rj3ojdnw03lhuap
質問者

お礼

回答ありがとうございました。

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

シート1を日付順に並べ替えた後で、フィルタ機能を使って、その会員NOのみを表示するようにしては?

rj3ojdnw03lhuap
質問者

お礼

回答ありがとうございました。

関連するQ&A

  • 今日の日付のデータをすばやく抽出するには・・

    売上日報をエクセルで作っています。 A列に1から順にNOを入れています(LOOKUP関数を使うためです) B列に日付を入れています。 C列に社名を入れています。 その他の列にもいろんなデータが入っています。 本日の日付だけをすばやく抽出したいと思うのですが、どうすれいいか分かりません。 オートフィルタで今日の日付を選ぶ方法はやれます。 でも、もっと早く抽出できる方法はないでしょうか? 数ヶ月分のデータが入っているため、オートフィルタの三角をおしたあと、今日の日付を探すのに結構手間取ります。 もっとすばやく抽出したいのです。どんな方法でもいいです。どなたか教えて下さい。

  • ACCESS で、古い日付順に抽出したい

    こんにちは。質問ばかりですみません。 EXCEL から ACCESS に移行するため、四苦八苦している者です。 たとえば下のようなCSV データがあったとします。 品番,納入日 A001,2006/1/24 A001,2006/2/10 A001,2006/2/13 A001,2006/2/14 A001,2006/2/15 B002,2006/1/26 B002,2006/2/3 B002,2006/2/14 B002,2006/2/24 B002,2006/2/27 C003,2006/1/27 C003,2006/2/7 C003,2006/2/9 C003,2006/2/14 C003,2006/2/21 品番に対して、日付は納入日です。 このデータに対して、以下のように一番近い日付だけ抽出し、納入日一覧クエリーを作りたいです。 品番,納入日 A001,2006/1/24 B002,2006/1/26 C003,2006/1/27 EXCEL だと日付順に並び替えてから、別シートからVLOOKUP で上から抽出してくれますよね。 アイデア下さい。 また、どんな言葉で検索していいかわからなくて、既出だったらごめんなさい。 ACCESS 97 で、WINDOWS 2000です。 よろしくお願いします。

  • エクセルで項目を抽出したい

    皆様のお知恵をお貸しください。 日々作業者が行っている日報の項目を一覧表より抽出したいのです。 シート1には受付日(A列) 品番(B列) 数量(C列) 納期(D列)・・・ などが記入されています。日々増えていき月あたり100件程度です シート2には作業者の日報に書かれている品番(A列)、作業時間(B列)、作業者名(C列)作業日時(D列)を手入力していきます。 月当たり1000ほどの入力になります。 複数の作業者が同じ仕事をすること、日をまたぐこともあり重複しています。 求めたいことはシート3のA列にシート2で書かれた品名をシート1の品名の中から抽出し自動で書き出したいのです。 今はピボットを使いシート2のデータを表にして、そこの項目をLOOKUP関数を用いて導きだしていますが、その都度ピボットを更新させないといけないので煩わしいと思い、できれば関数で抽出をしたいのです。欲を言えば品番の若い順に自動で抽出できればいいのですが、まずはシート2に書かれた順でもかまいません。 記入例 シート1には A列    B列    C列    D列 10/1   10001    30    10/12 10/2   10002    1     10/5 10/2 10003 3 11/5 ・       ・        ・ シート2には  A列    B列     C列    D列 10001    2.5     ○○   10/2  9058    4      ○○   10/2 10003 1 ○○   10/3 10001 1 ××   10/3  10003 6 ××   10/3 10002 2 △△   10/5 シート3には(希望としては)  A列     9058 10001 10002 10003 . . . よろしくお願いします。     

  • Excelでのデータ抽出

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

  • エクセルで複数ファイルからコード条件で日付順抽出

    エクセルで複数ファイルからコード条件で日付順に抽出したいのですが、関数を使って可能でしょうか? ファイル名と保持データ (1)マスタ一覧:A列(コード)B列(名前)C列(住所)  (2)契約履歴:A列(コード)B列(名前)C列(契約会社)D列(契約始期(日付))E列(契約終期(日付)) (3)コード別契約履歴:コード 名前 契約会社 契約始期(日付) 契約終期(日付) (2)契約履歴には各人の契約履歴が1行に1契約ずつ入力されています。 (3)コード別契約履歴のコード入力セルにコードを入力すると、名前と住所、あと契約履歴を日付順に抽出される様にしたいです。(印刷用のレイアウト) 質問の内容が分かりにくいかもしれませんがよろしくお願いします。   

  • エクセル2000でこんなことはできますか?【初歩的な質問ですみません。】

    Sheet1の入力 (1) B4に5000が入力されています。 (2) B7から2006/10/6、B8に2006/10/5、B9に2006/10/4・・・のようにB506まで日付の新しい順に並んでいるものとします。 B7 2006/10/6 B8 2006/10/5 B9 2006/10/4 (3) C7からは4桁の任意の数がC506まで並んでいるものとします。 C7 7685 C8 2394 C9 1542 ・ ・ C506 6473 Sheet2の入力 (1) A列にはA2から1~9999まで入力されているものとします。 A2 1 A3 2 A4 3 ・ ・ ・ A10000   9999 (2) B列には日付、C列には任意の数が入力されているものとします。        B        C 2    2006/6/8     120 3 2006/1/24     457 ・ ・ 10000  2005/12/3    6750 (3) D列には日付、E列にも任意の数が同様に入力されているものとします。 【Sheet1に次のような作業列を関数で作りたいと思いますができるのでしょうか。】 Sheet1のB4に入力されている数をSheet2のA列から抽出しその行すべてをSheet1のB5から右側に表示する。 まだ先は続きますが、さしあたり上記の疑問につきましてお分かりの方がいらっしゃいましたら、ご教示をお願いします。

  • エクセルExcelでの空白を詰めてのデータ抽出の方法

    ぜひ力を貸してください(>_<) Sheet1は入力専用で A列は日付で固定、B列に入力をします。B列は空白が多いです。  A  B 7/20 7/21 160 7/22 7/23 230 7/24 185 7/25 これをSheet2にB列の空白を詰めて 日付順に表記させたいです  A  B 7/21 160 7/23 230 7/24 185 Sheet2の関数式を教えていただきたいです よろしくお願いいたします

  • エクセル☆抽出について

    エクセル初心者です。 抽出に関して教えて頂きたく、 どなたかご存知の方よろしくお願い致します。 【シート1】 (A) (B) (C) ・・・ (1) 赤1  15 (2) 青1  16 (3) 緑2  23 (4) 紫3  58 (5) 黒5  60 【シート2】 (A) (B) (C) ・・・ (1) 赤1   (2) 赤5   (3) 黄3 (4) 黒5   (5) 緑1   以上のようなシートが別々のデータがあるとします。 問(1) 【シート1】のA列データに、 【シート2】のA列のデータが含まれていたら、 【シート2】のC列へそのデータを抽出したい場合、 どのような操作や数式等を使用すればよいでしょうか。 問(2) 【シート1】のA列データに、 【シート2】のA列のデータが含まれていたら、 【シート2】のA列のデータに色をつけたい場合、 どのような操作や数式等を使用すればよいでしょうか。 条件付き書式なのかフィルタのオプション設定なのか、 色々と考えてみたのですが解りません。 どなたかご存知の方よろしくお願い致します。

  • EXCEL 文字列条件抽出

    特定の文字列を検索条件として別シートに抽出する方法を御教授願います。 使用する関数はLEN,MID,LEFT,ISERR,もしくはワイルドカードなどを使用すればいいのかと考えておるのですがいまいちやりたいような数式を組めず悩んでおります。 やりたいことを言葉で表現するならば以下のような感じとなります。 「sheet1のF列に<107>という文字が含まれていた場合」 ・顧客別シートのD列に顧客ごとに分けて抽出 ・含まれていない場合、抽出しない と、単純なことなのです。が、制約がある為にうまくいきません。 制約は以下となります。 ・検索対象の文字列が以下のように決まった形ではない。 (1)A-BB-107○#----- (2)A-BB-107○#----- (3)ABB107○C #----- (4)ュウリABB-107○#----- (5)ュウリABB107○#----- (6)BB-107○C-D9#-----  など、その他にも数種類存在。(○部分には違う数字が入ります) ・上記でも分かるように<107>が始まる文字列の位置が決まっていない。 という具合です。 操作しているブック構成は下記のとおりです。 ・sheet1・・・参照用シート 4行目 /D列・・・顧客No / E列・・・顧客名 / C列・・・製品仕様 (A列,B列,G~AD列まで使用中) 5行目 / 1 / A / A-BB-107○#----- 6行目 / 2 / B / ュウリABB-107○#----- 7行目 / 1 / A / BB-107○C-D9#----- 8行目 / 3 / C / A-BB-107○#----- 9行目 / 3 / C / BB-107○C-D9#-----  10行目 / 4 / D / A-BB-107○#----- (会社のサーバーで管理している情報がそのままエクセルに打ち出されたシート。 情報量として約1000行ほど) ・sheet2,3,4,5(開始行,項目列は同じ位置)・・・特定の顧客別ごとに分け、特定の製品仕様だけを抽出したシート(参照用から引用)。 4行目/ B列・・・顧客No / C列・・・顧客名 / D列・・・製品仕様 5行目 / / A-BB-107○#----- 6行目 / / ュウリABB-107○#----- 7行目 1 / A / BB-1234C-D9#----- 8行目 / / A-BB-1115#----- 9行目 / / BB-107○C-D9#-----  10行目 / / A-BB-3498○#----- 特定の顧客NoをB列(一つのセルになってます。C列も同様一つのセルになってます)に入力すると、製品仕様すべてを抽出するように作成したシート。このシート内のG列から新たに表を作成し<107>の文字列が含む製品仕様を抽出しようと考えております。 出来れば、このような一度段階を踏んでから特定の仕様を抽出するのではなく各シートに対象となる顧客Noを入力すると特定の仕様が一回で抽出できるようなシートを作成したいのですが、関数初心者の為、うまく組めずこのような形となりました。(現在、参照用シートに作業列を作り対応。作業列ばかりが増えて正直困っているのも確かなのです) 【御教授頂きたいこと】 ・<107>の文字列を条件として別表に抽出する関数の数式 です。 また、出来ればでいいのですが、 ・顧客Noを入力すると特定の仕様が一回で別表に抽出できるような方法が御座いましたら、そちらも合わせてお願いしたいと思っております。 長々と書き綴り、大変申し訳御座いませんが、宜しくお願い致します。

  • 検索したい日付からデータを抽出したい。

    こんにちわ。 キャンペーンが何日~何日までどういった内容がある、という一覧を作成しています。 Aの列が開始日、Bの列が終了日、Cの列がキャンペーン内容、です。 検索したい日付をD1のセルに入力したら、その日付に該当するキャンペーンすべてを別のシートに抽出できないでしょうか・・・ オートフィルタで抽出は出来るのですが、日付を入力しただけで抽出 させたいのですが、無理でしょうか・・・ よろしくお願いします。

専門家に質問してみよう