エクセルで指定した月のデータを抽出する方法

このQ&Aのポイント
  • エクセルのフィルタオプションを使用して、指定した月のデータを抽出する方法を説明します。
  • セルに条件を入れる方法や入れない方法など、複数の方法があります。
  • エクセルのバージョンは2010を前提としています。
回答を見る
  • ベストアンサー

月を指定してデータを抽出する

下記のようなデータから(テーブル)     A     B      C      D 1  年月日  会社名  商品名   金額 2 10月27日  A社   リンゴ    5000 3 10月29日  B社   みかん   8000  4 11月1日   A社   バナナ   1000 5 11月2日   C社   みかん   4000 6 11月3日   B社   ぶどう   10000 下記のような別シートの見出しのB1セルを参照して。フィルタオプションで11月のデータだけを下記のA6:D9セルのように抽出するには抽出条件のA4セルにどのような関数を入れたらよいのでしょうか?     A      B    C      D 1 平成22年  11月  売上表 2 3 年月日 4  5 6 年月日   会社名  商品名   金額 7 11月1日   A社   バナナ   1000 8 11月2日   C社   みかん   4000 9 11月3日   B社   ぶどう   10000 A4セルに条件を入れなくても抽出できる方法でも結構です。 エクセルは2010です。 教えていただける方がおりましたらよろしくお願いします。

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

  • ベストアンサー
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.2

年月日が日付シリアルなら、A4に =MONTH(A2)=11 という式を入れれば良いです。ここのA2は元の表の、フィールド名年月日の直下のアドレスです。 条件を別のシートに置くなら、 =MONTH(Sheet1!A2)=11 という様にします。 但し、A4の上に「年月日」を入れるとエラーになります。 元の表のフィールド名ではない、無関係な文字列だと問題なさそうですが、 一般には空白にしておけと言われております。 抽出条件としては、空白セルもセットで選択してください。

参考URL:
http://www.excel-jiten.net/database/extract_filter_option_formula_2.html
kamar3
質問者

お礼

ありがとうございます。 シート2のB1セルを"11"に A4セルの=11を=$B$1にして 完璧に出来ました。 感謝、感謝です。

その他の回答 (5)

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

参考までに No4の回答の数式を利用して、補助列なしに別シートに該当データを表示させたいなら、以下の式を入力して右方向に4つ、下方向に適当数オートフィルしてください。 =INDEX(Sheet1!A:A,SMALL(INDEX(((($A$1&$B$1&"1日")*1>Sheet1!$A$2:$A$1000)+((DATE(MID($A$1,3,2)+1988,SUBSTITUTE($B$1,"月","")+1,0)<Sheet1!$A$2:$A$1000)))*1000+ROW($A$2:$A$1000),),ROW(A1))) データのない部分は「0」が表示されますのでExcelのオプションでゼロ値を表示しない設定にしてください。 どうしても、数式で対応したい場合は、B列とC列の文字列データについては、数式の最後に「&""」を付けて、A列とD列は「IF(B2="","",元の式)」というようにB列を参照すると計算負荷が少なくなります。

kamar3
質問者

お礼

ありがとうございました。 説明不足で申し訳ありませんでしたが、抽出条件が他にもANDでありますので ちょっと違うようでした。 でも、参考にはなりました。 お世話様です。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.5

 作業列を使用しない方法です。  今仮に、元データが存在するSheetがSheet1であるものとします。  まず、別SheetのA7セルに次の数式を入力して下さい。 =IF(ROWS($1:1)>SUMPRODUCT((TEXT(OFFSET(Sheet1!$A$1,1,,MATCH(9^9,Sheet1!$A:$A)),"ggge年m月")=$A$1&$B$1)*1),"",INDEX(Sheet1!A:A,SUMPRODUCT(ROW(OFFSET(Sheet1!$A$1,1,,MATCH(9^9,Sheet1!$A:$A)))*(COUNTIF(OFFSET(Sheet1!$A$1,,,ROW(OFFSET(Sheet1!$A$1,1,,MATCH(9^9,Sheet1!$A:$A)))),"<"&DATE(YEAR(VALUE($A$1&"1月1日")),VALUE(SUBSTITUTE($B$1,"月",))+1,1))-COUNTIF(OFFSET(Sheet1!$A$1,,,ROW(OFFSET(Sheet1!$A$1,1,,MATCH(9^9,Sheet1!$A:$A)))),"<"&VALUE($A$1&$B$1&"1日"))=ROWS($1:1))*(TEXT(OFFSET(Sheet1!$A$1,1,,MATCH(9^9,Sheet1!$A:$A)),"ggge年m月")=$A$1&$B$1))))  次に、別SheetのA7セルをコピーして、別SheetのA7~D7の範囲に貼り付けて下さい。  次に、別SheetのA7セルの書式設定を、Sheet1のA列のセルと同じにして下さい。  次に、別SheetのA7~D7の範囲をコピーして、同じ列の8行目以下に貼り付けて下さい。  以上です。

kamar3
質問者

お礼

ありがとうございました。 説明不足で申し訳ありませんでしたが、抽出条件が他にもANDでありますので ちょっと違うようでした。 でも、参考にはなりました。 お世話様です。

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

補足情報と訂正です。 提示した数式は、月末日以下の数式が未満になっていましたので「>」を「>=」に修正してください。。 ちなみにSheet2のA1セルに「平成**年」B1セルに「*月」と数字以外のデータが入力されているレイアウトの表なら、条件式は以下のような式になります。 =AND(($A$1&$B$1&"1日")*1<=Sheet1!A2,DATE(MID($A$1,3,2)+1988,SUBSTITUTE($B$1,"月","")+1,0)>=Sheet1!A2)

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

フィルタオプションの設定で抽出する場合は、2列の条件でAND条件にもできますが、1つの数式だけを使って以下のような設定にするのが簡単です。 元データがSheet1で、Sheet2のA1セルに「2010」と年、B1セルに「11」と月の数字が入っている場合、A3セルは空白にするか「条件」とでも入力しておき(重要:項目名は利用できない)、A4セルに以下の式を入力します。 =AND(DATE($A$1,$B$1,1)<=Sheet1!A2,DATE($A$1,$B$1+1,0)>Sheet1!A2) これで検索条件を「A3:A4」に指定し、抽出範囲を指定した範囲にチェックを入れてA6セルを指定してください。 Sheet2のA1セルとB1セルに「平成22年」「11月」と入力されている場合は、少し複雑な数式にすれば対応することができます。 また、上記の条件を利用すれば、補助列なしの数式でも、同様に該当データを表示することができますが、抽出するデータ数が多くなるとシートが重くなるのであまりお勧めできません。 この場合、重複する日付がないなどの条件があれば数式を簡略化することもできます。

kamar3
質問者

お礼

ありがとうございます。 抽出する事が出来ました。 ただ、他に簡単な方法がありましたので ベストアンサーにはしませんでした。 申し訳ありません。

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

こんばんは! 一例です。 作業用の列を設けています。 ↓の画像のように年・月を入力するセルは別にしておいて、単純に年・月の数値のみを入力するようにしています。 Sheet1の作業列E2セルに =IF(AND(YEAR(A2)=Sheet2!$B$1+1988,MONTH(A2)=Sheet2!$D$1),ROW(),"") という数式を入れ、オートフィルでずぃ~~~!っとコピーします。 そして、Sheet2のA4セルに =IF(COUNT(Sheet1!$E:$E)<ROW(A1),"",INDEX(Sheet1!A:A,SMALL(Sheet1!$E:$E,ROW(A1)))) という数式を入れ、列方向にD4セルまでオートフィルでコピー そして、A4セルの表示形式は日付にしておきます。 最後のA4~D4セルを範囲指定し、D4セルのフィルハンドルで下へコピーすると 画像のような感じになります。 以上、参考になれば良いのですが・・・m(__)m

kamar3
質問者

お礼

ありがとうございました。 説明不足で申し訳ありませんでしたが、抽出条件が他にもANDでありますので ちょっと違うようでした。 でも、参考にはなりました。 お世話様です。

関連するQ&A

  • BookAのデータを元にBookBに文字列を抽出する。

    BookAのデータを元にBookBに文字列を抽出する。 BookAに下記のデータがあります ブック名="データA" シート名="名称"としてあります。 A B C D 1 A社   B社 2 りんご 青森 りんご 青森 3 みかん 愛媛  ぶどう 栃木 4 ぶどう 山梨  すいか 茨城 上記データを元に下記BookBに抽出する ブック名="マスターA" シート名="メイン"としてあります。   A   B   C 1 A社 みかん 愛媛 上記A1,B2に入力規制のドロップダウンリストから、A1="A社"、B1="みかん" を選択した時に (ここまではINDIRECTを使って出来ました。) C1に"愛媛"を抽出するにはどうしたらよいのでしょうか? A1にB社を選んだ時には、B1では "りんご"、"ぶどう"、"すいか" が選択できるので C1にはそれぞれ "青森"、"栃木"、"茨城" を抽出したいのですが。 よろしくお願いします。

  • Excel ●がついているセルのみ抽出したい

    A列  B列  C列 ●  りんご  3    みかん  5 ●  ぶどう  2    バナナ  5 ↓ ●  りんご  3 ●  ぶどう  2 上記のように●がついているセルの横(B、C列)を抽出する関数はありますか? オートフィルタ以外でおわかりになりましたら教えてください。 よろしくお願いいたします<(_ _)>

  • Excelで複数条件で抽出した複数データを出力

    Excelで複数条件で抽出した複数データを出力したい Shett1のセルAとセルBの複数条件で、Sheet2を検索し一致したSheet2のセルCを Sheet1の該当するセルCに入れたいのです。 それを関数でするのはどうしたらいいのでしょうか? Sheet1 A B NAME ID(タイトル) いちご A01 いちじく A02 かき B01 すいか C01 なし D01 ぱいなっぷる E01 ばなな E02 ぶどう F01 みかん G01 めろん H01 もも I01 りんご J01 Sheet2 A B C 名前 ID 漢字(タイトル) みかん G01 蜜柑 いちご A01 苺 ぶどう F01 葡萄 りんご J01 林檎 もも I01 桃 かき B01 柿 なし D01 梨 すいか C01 西瓜 いちじく A02 無花果

  • 同じ日にちの件数を制限して抽出する

    日付ごとのデータがあり、同じ日付の数は日によって違い、10個の時も20個の時もあります。 そのデータを、同じ日付のデータは14個以下に制限し、それ以上は無視して別シートに抽出したいのですが。(エクセル2010) 下記のようなシート1のデータを      A     B     C 1  11月1日  りんご   A社 2  11月1日  みかん  C社 3  11月1日  とまと   B社 ・ ・ 14 11月1日  みかん  D社 15 11月1日  とまと   H社 16 11月2日  ばなな   B社  17 11月2日  りんご   D社 別シートに下記のように抽出      A     B     C 1  11月1日  りんご   A社 2  11月1日  みかん  C社 3  11月1日  とまと   B社 ・ ・ 14 11月1日  みかん  D社 15 11月2日  ばなな   B社 16 11月2日  りんご   D社 どなたか教えていただける方がいましたらよろしくお願いします。

  • エクセルで、スペースで区切られた言葉をわける。

    たとえば、セルのA1に、  りんご■バナナ■みかん■ぶどう■いちご (■=半角スペース) とあったときに、 B1のセルにりんご C1のセルにバナナ D1のセルにみかん E1のセルにぶどう F1のセルにいちご となるようにB1~F1に入力する関数があれば教えてください。

  • ある特定データを表示順に抽出したい

    お世話になります。どうしても解決できないことがありぜひご教授願えたらと思います。   1 2 A 日本  みかん B アメリカ りんご C 日本  ぶどう D 台湾  バナナ E 日本   いちご     ・     ・     ・ あるデータが上記のようにあるとします。このとき、1列が「日本」となっているもののみを抽出して以下のように表示したいと思っています。   1 2 P 日本   みかん Q 日本  ぶどう R 日本   いちご 自動で表示させる場合(P1などにいれる関数など)にはどのようにしたらよいのか、お教えいただければ幸いです。どうぞ宜しくお願いいたします。

  • EXECL・複数タブからのデータ抽出

    同一Book内での処理です。 今現在の処理内容です タブAには抽出されるデータがあります。 セルA1・・・抽出キー セルB1・・・抽出データ1 セルC1・・・抽出データ2 タブBには抽出キー・抽出結果を表示するようにしています。 セルA1・・・抽出キー1 セルB1・・・抽出キー2 セルC1・・・抽出キーを合成 <=CONCATENATE(A1,"→",B1)> セルD1・・・データ抽出 <=VLOOKUP(C1,タブA!$A:$C,2,FALSE)> したいことは タブAのデータと同一内容のデータが複数タブに存在するときのデータ抽出する場合はどうすればよいのでしょうか? タブA(リンゴ)には抽出されるデータがあります。 セルA1・・・抽出キー セルB1・・・抽出データ1 セルC1・・・抽出データ2 タブB(みかん)には抽出されるデータがあります。 セルA1・・・抽出キー セルB1・・・抽出データ1 セルC1・・・抽出データ2 タブCではセルA1の内容によって抽出するデータのタブを選択しデータを抽出したい セルA1・・・抽出キー1 セルB1・・・抽出キー2 セルC1・・・抽出キーを合成 <=CONCATENATE(A1,"→",B1)> セルD1・・・データ抽出 <=ここの計算式が知りたい タブCのセルA1の抽出キーに(リンゴ)と入力されていればタブA(リンゴ)のシートよりデータ抽出 タブCのセルA1の抽出キーに(みかん)と入力されていればタブB(みかん)のシートよりデータ抽出 単にいえば、データ抽出するタブを指定して<VLOOKUP関数>を利用できるのか? できないなら実現できる手法を教えていただきたいです。 説明が難しいですが、内容がわかっていただけたでしょうか? 達人からの回答よろしくお願いいたします

  • 【Excel2003】データの抽出をしてまとめる

    いつも活用させて頂いております。 色々検索し、試行錯誤致しましたがどうにもならず‥ 御伝授ください。 《元のリスト》 A B C D E F G 1 日程 担当者 地域飲食費人数参加社名  参加社名(2) 2 4月9日 東京 札幌30002A社  B社 3 4月10日 東京 仙台50002B社  C社 4 4月11日 大阪 札幌30001C社                    ・                    ・                    ・    上記のような更新していくリストがあり、何か接待があるとこのリストを更新していく感じです。 このリストからセルF・Gにある参加社名別のデータを抽出し、別シートのリストにデータを集計したいです。 《データ抽出後の形》 A B C D E 1 社名日程単価日程単価 2 A社4月9日3000 3 B社4月9日30004月10日5000 4 C社4月10日50004月10日3000 《元のリスト》が更新されたら、データ抽出をしたものも更新するようにしたいです。 要するに『A社にいつどれくらいの金額を使ったか』 が知るためのリストを作成したいと思っております。 よろしくお願いいたします。

  • 表から条件で抽出して別の表を作る

    いつもお世話になっています。またわからなくなってしまいまして、わかる方がいましたらよろしくお願いいたします。 下記のような表で、例えばB列が『A商店』のデータを抽出して、別の表としてE列以降に新しい表を作るようなことは可能でしょうか? =====  A    B   C D E    F   G りんご A商店 2個  りんご A商店 2個 バナナ A商店 3個  バナナ A商店 3個 りんご B商店 5個  バナナ A商店 5個 みかん C商店 3個  みかん A商店 1個 バナナ A商店 5個 みかん A商店 1個 バナナ C商店 3個 ===== よろしくお願いいたします。

  • エクセルで項目抽出

    エクセルで下記のような表から項目を抽出したいのですが うまくいきません A列 りんご みかん りんご ぶどう みかん と入力されていて任意のセルに、A列に入力されている項目から 重複分を除き抽出したいです 具体的には任意セルに「りんご、みかん、ぶどう」と抽出したいのです。 オートフィル機能を使いやってみましたが、 A列に後からデータを追加すると追加データまでは拾えませんでした。 よろしくお願いいたします

専門家に質問してみよう