Excelで2つの条件が一致したデータの抽出方法とは?

このQ&Aのポイント
  • Excelで2つの条件が一致したデータの抽出方法について説明します。
  • 具体的な抽出方法を手順とともに解説します。
  • Excelの関数を使用して、条件に一致するデータを抽出する方法を説明します。
回答を見る
  • ベストアンサー

Excelで2つの条件が一致したデータの抽出

Excelで2つの条件が一致したデータの抽出 こんにちわ。 タイトルの通り、Excelで2つの条件が一致したデータの抽出作業を行っています。 Sheet1にデータがあり、以下のような構成なっています。 A列    B列    C列 日付   社員名   売上金 6月1日 鈴木     3万円 6月1日 今井     2万円 6月2日 川口     10万円 6月3日 鈴木     4万円 6月3日 野口     1万円 6月4日 鈴木     3万円 6月7日 佐藤     6万円 6月7日 今井     2万円 6月7日 黒木     7万円 6月9日 野口     3万円 A列の日付は不連続かつ同一日付のものもあります。 Sheet2に以下のフォーマットを作成してあります。 1行目:B1セルから連続する日付(6/1~6/30まで) A列:A2から社員名(社員名は各セルに固定) 6月1日 6月2日 6月3日 6月4日 6月5日 ・・・ 鈴木 佐藤 今井 川口 野口 黒木 Sheet2のセルに、Sheet1の表の日付と社員名が一致した売上金のデータを反映させたいのです。 そこで例えばSheet2のB2セルには以下の関数を入れました。 B2=IF(ISNA(MATCH($A$2:$A$9&$B$1:$N$1,INDEX(Sheet1!$C$2:$C$24&Sheet1!$A$2:$A$24,))),"",INDEX(Sheet1!$D$2:$D$24,MATCH($A$2:$A$9&$B$1:$N$1,INDEX(Sheet1!$C$2:$C$24&Sheet1!$A$2:$A$24,),0))) この関数を入れると、該当するところには売上金のデータが反映されるものの、それ以外のセルには全て#N/Aが表示されてしまいます。 この#N/Aを表示させないようにするには、関数をどのようにすればいいのでしょうか? エクセル初心者なので、分かりやすくご教授願えたら…と思います。 よろしくお願いいたします。 使用OS:XP  使用ソフト:Office2000 Pro.

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

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

こんばんは! 外していたらごめんなさい。 日付ごとの各社員の売上集計が表示できれば良いわけですよね? 一例です。 Sheet2のB2セルに =SUMPRODUCT((Sheet1!$A$2:$A$1000=B$1)*(Sheet1!$B$2:$B$1000=$A2)*(Sheet1!$C$2:$C$1000)) という数式を入れ、列方向と行方向にオートフィルでコピーしてみてはどうでしょうか? (Sheet1の1000行目まで対応できる数式にしています。) 以上、参考になれば良いのですが 的外れなら読み流してくださいね。m(__)m

kikumaro
質問者

お礼

うぉ!何てシンプルな式なんでしょう!思わず感動しました! 素早い回答をありがとうございます。助かりました。

その他の回答 (2)

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.3

売上金を数値だけにして ピボットテーブルを作成してはいかがでしょう

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

提示されている数式では、該当するデータが表示されるとは思えないのですが、本当に表示できているのでしょうか? 金額が文字列データで入力されているなら、たとえば以下のような配列数式を使う必要があります。 =IF(SUMPRODUCT((Sheet1!$A$2:$A$24=B$1)*(Sheet1!$B$2:$B$24=$A2)),INDEX(Sheet1!$C:$C,SUMPRODUCT((Sheet1!$A$2:$A$24=B$1)*(Sheet1!$B$2:$B$24=$A2)*ROW($A$2:$A$24))),"") 数字が入力されているなら以下のような数式でクロスする位置の値を取得することができます。 =SUMPRODUCT((Sheet1!$A$2:$A$24=B$1)*(Sheet1!$B$2:$B$24=$A2),Sheet1!$C$2:$C$24) 該当データがないときの0を表示したくないなら、セルの書式設定で表示形式をユーザー定義にして「#」などとしてください。

kikumaro
質問者

お礼

すいません。質問内容の売上金は、実は数値データです。 正しく質問せず、誠に申し訳ございません。 該当データが無いときの0を表示しない…ってのは大変参考になりました。 こんな手があったんですねぇ。 ポイントをお渡しすることが出来ず、誠に申し訳ございません。 大変助かりました。 ありがとうございました。

関連するQ&A

  • エクセル(2003・2007)でデータ抽出し、別シートを作成するための

    エクセル(2003・2007)でデータ抽出し、別シートを作成するための関数を教えて下さい ●シート名:サンプルA                ●シート名:サンプルB   A  B    C   D  E・・        A  B     C   名前 日付1  日付2  備考      名前 日付1   備考 1 山田 2010/10/15 2010/10/10 ああ    1 鈴木 2010/10/18 うう 2 佐藤             いい       2 太田 2010/10/21 かか  3 鈴木 2010/10/18 うう     → 4 井上 2010/11/20 ええ 5 石田 2010/8/7 2010/10/7 おお 6 太田 2010/10/21 かか 具体的に上記のデータから【B列が本日から10日間以内かつC列がスペース】のデータのA・B・D行を別シートに作成する関数を教えて下さい よろしくお願いします ※なぜか文字がずれてしまってて、すいません・・・

  • エクセル2つのセルを1つのデータとして一致

    エクセル初心者です。 (1)シートのA列には店舗名(A列には同じ店舗名が複数あります)とB列には数値を入力しています。(2)のシートには(1)シート同様のデータが入力されていますがCとD列に値があります。 (1)シートの同行内のAとB列を1つのデータとして(2)のシートのAとB列が一致したらCとD列の値を(1)シートに返す事は可能でしょうか? (1)シート A列    B列   C列   D列 ヤマダ   25 スズキ   10 ヤマダ   100 (2)シート A列    B列   C列   D列 ヤマダ   25    5    英 スズキ   10    6    独 ヤマダ   100    6 仏 さくら  20    8 英 つたない説明で申し訳ありません。

  • エクセルで月ごとの複数データを別シートに抽出したい

    エクセル2007で、sheet1に元となるデータがあり、その中からsheet2に月毎に列でまとめて、しかも日付順に並ばせたいと思っています。 まず、下記がsheet1のデータ例です。 -------------------------------------------- [sheet1]    A列     B列          C列      D列 1  名前     レンタル希望    血液型    担当 2  山田太郎  2013/9/12     A型      営業  3  鈴木花子  2013/8/1      B型      開発 4  山下健    2013/9/10      O型     広報 -------------------------------------------- 上記のような、随時追加・修正されていくデータです。 それを、下記のようにsheet2にB列(レンタル希望日)の月で検索し、B列の日付順でA列(名前)とB列(レンタル希望日)を随時表示させていきたいです。 -------------------------------------------- [sheet2]    A列      B列         C列      D列 1  8月レンタル            9月レンタル 2  名前      レンタル希望   名前     レンタル希望 3  鈴木花子   2013/8/1     山下健    2013/9/10 4                     山田太郎   2013/9/12 -------------------------------------------- このような形でsheet1を変えたものをレンタル希望日を基点にとして 随時並ばれていて、この月はこのぐらいの希望がこの人からあるのか(あったのか) というのがわかるような管理表を作りたいと思っています。 フィルタオプション等をいろいろ試してみましたがうまくいかず、 また、なかなかマッチするQAが見つからず困っています。。。 どうかよろしくお願いします!

  • EXCELでデータを条件わけして抽出する方法はありますか?

    EXCELでデータを条件分けして抽出する方法はありますか? EXCELでsheet1の元データから、条件を検索して、 sheet2とsheet3に移動させたいです。 sheet 1(元データ)   A  B  C  D 2 日付 名前 作業 時間 3 8/1  鈴木 1 1.0 4 8/1  佐藤 1  1.5 5 8/1  藤原 1  2.0 6 8/2 鈴木 2 1.0 7 8/4 佐藤 2 1.0 8 8/4 鈴木 3 2.5 9 8/5 鈴木 4 1.0 10 8/5 藤原 4 4.0 sheet2 (新規データ)  A   B  C  D 2 日付 名前 作業 時間 3 8/1 鈴木 1 1.0 4 8/1 藤原 1 2.0 5 8/2 鈴木 2 1.0 6 8/4 鈴木 3 2.5 7 8/5 鈴木 4  1.0 8 8/1 藤原 4  4.0 sheet3   A  B  C  D 2 日付 名前 作業 時間 3 8/1 佐藤 1  1.5 4 8/4 佐藤 2  1.0 ・ sheet1での検索条件は、・作業4があるときは、『名前』が同じ人のデータ(作業1.2.3.4)を sheet2に移動させる(例でいくと鈴木さんは、作業1.2.3.4それぞれある) ・この時、作業1,4の人も移動させる(例でいくと藤原さんは1,4のみ) ・sheet3は、sheet2で移動しなかった人→つまり、『作業4』がない人のみ移動 ・人は必ず1度しかでてこないです。結果、『作業4』は必ず同じ人には1回のみです。 私が考えたところ、 1.『作業4』がある人を先にsheet2に移動させて、sheet2で同じ人をsheet2に抽出する 2.sheet3に『作業4』がない人を抽出する のやり方でできるとおもうのですが、やり方がわかりません。 できれば簡単なマクロがいいです。説明が不十分でわかりにくいこともあるとおもいますが、よろしくお願いします

  • 条件に一致する行データを別シートに抽出する

    日付別の各データが入力された総括のシートがあり「0」とします。 別に13個の項目別シートを固定の様式で作ってあります。「1~13」とします。 シート「0」のB2~B30までセル上に入力するデータが1~13の整数として入力する訳ですが、その入力されたデータセルの中で該当する数字を条件として抽出し目的のシートの決められた座標から順に行を開けずに表示したいのです。 例えばシート「0」のB列に6という数字が入力されていたら同じ行A、C、Dのデータを全てシート「6」のA、B、Cに表示させたいのです。 同じように他の数字も該当するシートに該当する数字の全てを表示したいのです できるだけ判り易く教えてくださいお願いします。

  • 【エクセル】マスターから条件一致の全データ抽出

    質問させていただきます。 バージョンは2003です。 一つのBOOK内に、マスターデータsheet(以下、マスター)が一つあります。2sheet目以降は同じフォーマットで個人毎の区分でsheet分け(以下、個人シート)しており、マスターから個人名にてデータを抽出し、個人シートに一覧表を作成したいと考えております。またレギュレーションとしては、BOOKを開いた時には自動で計算されていることです。 いろいろな関数で試しても構築できずに困っております。 またVBAについては完全に素人ですが、領域的にはVBAであろうと覚悟はしております。 関数でもVBAでも構いません。何卒ご教授くださいませ。 よろしくお願いいたします。 ■マスターデータ  A   B   C    1鈴木 商品1 外注1 2山田 商品2 外注2 3田中 商品3 外注3 4鈴木 商品4 外注1 5鈴木 商品5 外注3 例えば“鈴木用”個人シートであれば、1,4,5行にある3データを個人シート上に一覧表として表示させたいです。 参考までに情報量としては、マスターデータでは29列×3000行。個人シートは100シート程度あります。 よろしくお願いいたします。

  • 複数条件抽出をVBAで

    excelの複数条件抽出をVBAでやりたいので教えてください。 エクセル2003で複数条件抽出をしたいと思っています。 dateのシートに、A列:日付、B列:名前、C列:金額があります。 それを1というシートに、日付と名前の2つの条件が合致している金額を抜き出したいと思っています。 抜き出すのは0601&AさんをA5セル~A20       0601&BさんのはB5~B20へ ということは可能でしょうか? もしよろしければ教えていただければ助かります。 'date'シート 日付   名前  金額 0601 Aさん  100円 0601  Aさん  120円 0601  Bさん  150円 シート'1' 0601&Aさん   0601&Bさん 100円           150円 120円 どの人がやってもボタン1つで実行できるようにしたいために、 VBA出できればと思っております。

  • Excelでのデータ抽出

    Excelで外部結合風のデータ抽出を教えてください。 シートAとシートBに表形式のデータがあり、 シートAのA列の値とシートBのA列の値が一致するシートBの 行を抽出するのが目的です。 具体的には次のような感じです。 シートA         シートB ----------------  ---------------- A列 | B列 | C列     A列 | B列 | C列 ----------------  ---------------- 2  | 2B  | 2C      1  | 1BB | 1CC ----------------  ---------------- 4  | 4B  | 4C      2  | 2BB | 2CC ----------------  ---------------- 6  | 6B  | 6C      3  | 3BB | 3CC ----------------  ---------------- ↓ シートB ---------------- A列 | B列 | C列 ---------------- 2  | 2BB | 2CC ---------------- 以下以外の方法がありましたら教えてください。 1)アクセスに両シートのデータを取り込み、2つのテーブルを外部結合で連結させる。 2)マクロで二重ループをつくり、A列が一致した行を取り出す。 よろしくお願いします。

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

    (1)シートは「集約」用のシートと、「各月」のシートがあります。「集約」シートは、A列には日付、B列には番号、C列には備考欄という表があります。各月のシートも同様ですが、番号の項目だけどの月も「1、2、3,4~」と通し番号でつけてあります。通し番号の数は月によって異なります。多くなる月もあれば、少なくなってしまう月、何もない月もあります。(2)「集約」の日付なり番号なりを入力すると、各月のデータが一つの表に反映されるようにしたいです。何かよい手立てはないものでしょうか?よろしくお願いします。

  • excelで条件に一致するデータ全てを抽出する方法

    現在、エクセル2003を使用しています。 A列・B列・C列にデータが入力されています。 ただし、空白セル(空白行)もあります。 A列に“@Name”とデータ入力がある場合 同じ行のC列の値を抽出したいと思います。 A列に@Nameは複数ありますが、C列の値は それぞれ違いますので、データの集計先はF列に 全て抽出をしたい。 なにか良い方法(VBAや関数)がありましたら 教えてください。

専門家に質問してみよう