• ベストアンサー

エクセルで日付順で抽出

エクセルで関数を使用して、別シートから日付順で抽出するのは可能でしょうか? 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