複数条件で数値を取り出す関数を教えて下さい

このQ&Aのポイント
  • Win7 Excel2010を使用している場合、複数条件で数値を取り出すためにはIF関数やSUMPRODUCT関数を使用することができます。
  • 例えば、ファイル1のE列にファイル2からNO.、月、タイプの全てが一致する数値を抽出したい場合、IF関数を使用する方法があります。
  • また、SUMPRODUCT関数を使用することで、複数条件の数値を抽出し合計することもできます。
回答を見る
  • ベストアンサー

複数条件で数値を取り出す関数を教えて下さい。

皆様のお知恵を貸して下さい。win7 Excel2010使用です。 ファイル1が A   B    C     D   E No.  氏名   月    タイプ 金額 1234 田中一郎 201310 1201 1234 田中一郎 201401 1201 1234 田中一郎 201401 1202 1237 山田太郎 201311 1201 1237 山田太郎 201312 1203 ファイル2が A   B     C    D     E    F          1201  1201   1201  1201          201310 201311 201312 201401 1234 田中一郎 10,000 15,000  20,000 12,000 1237 山田太郎 25,000 30,000  8,000  11,000 となっていて、月が201310~201406まで、 タイプが1201~1205まででタイプ毎に横に記載されています。(ファイル2) データ数は1000件程です。 ファイル1のE列へファイル2からNO.、月、タイプ全て一致する数値(10,000等)を抽出し表示したいです。 IFやSUMPRODUCT等で出来るかな?とやってみたのですが、私の知識不足で上手く行きません。 宜しくお願いいたします、

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

ファイルとか分けても無駄に複雑になるだけなので、シート1と2で説明します >ファイル1のE列へファイル2からNO.、月、タイプ全て一致する数値(10,000等)を抽出し表示したい 例えば縦方向はVLOOKUP関数で、横方向何列目を取ってくるかを工夫します 添付図: E2 =IFERROR(VLOOKUP(A2,Sheet2!A:F,SUMPRODUCT((Sheet2!$A$1:$F$1=D2)*(Sheet2!$A$2:$F$2=C2)*COLUMN(Sheet2!A2:F2)),FALSE),"") 以下コピー 理屈を納得すれば、SUMPRODUCTでも何を使っても計算できます。

shibainugogo
質問者

お礼

早速のご回答ありがとうございます!大変助かりました。もっと勉強せねばとあらためて思いました。

その他の回答 (2)

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

No.1です。 No.2さんの回答を拝見して・・・ >ファイル1のE列へファイル2からNO.、月、タイプ全て一致する数値(10,000等)を抽出し表示したいです を全く逆の解釈をしていました。 どうも失礼しました。m(_ _)m

shibainugogo
質問者

お礼

とんでもございません。SUMIFS、便利だなあと思いました。今後色々活用できそうです。ありがとうございました。

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

こんにちは! ↓の画像のような配置で ファイル1はSheet1(上側)、ファイル2はSheet2(下側)にあるとします。 Sheet1のC列(「月」の列)はシリアル値ではなく、201310 のような数値だという前提です。 Excel2010をお使いだというコトですので、SUMIFS関数が使えます。 Sheet2のC3セルに =SUMIFS(Sheet1!$E:$E,Sheet1!$A:$A,$A3,Sheet1!$C:$C,C$2,Sheet1!$D:$D,Sheet2!C$1) という数式を入れ列・行方向にフィルハンドルでコピーすると 画像のような感じになります。m(_ _)m

関連するQ&A

  • 【エクセル関数】複数条件(月別・個人別)で集計したい

    例えば、以下のような表があるとします。 A        B       C 2005/10/12  山田一郎  5,000 2005/10/17  鈴木花子  1,000 2005/10/28  鈴木花子  2,000 2005/11/03  山田一郎  1,000 2005/11/17  山田一郎  2,000 2005/11/19  鈴木花子  4,000 これを、次のように仕訳したいのですが、      山田一郎  鈴木花子 10月  5,000     3,000 11月  3,000     4,000 どのような関数を使えばうまく集計することができますでしょうか? 自分なりに、SUMIFやSUMPRODUCTを使って考えてみたのですが、 うまく集計することができませんでした。 どうぞよろしくお願いします。

  • 旅費を二重払いしないための関数SUMPRODUCT

    エクセル2010を使っている者です。 たとえば以下のようにエクセルの表において、旅費精算をする1つの旅行(出張)について 一行で書いたシートがあったとします。 NO(A列)  名前(B列)    出発日(C列)   帰着日(D列) 1 田中 一郎    11/3        11/5 2 田中 一郎    11/2        11/4 3 田中 三郎    11/5        11/6 4 田中 四郎    11/2        11/2 5 田中 五郎    11/2        11/5 6 田中 六郎    11/9        11/12 8 田中 一郎    11/6        11/7 9 田中 一郎    11/3        11/3 10 田中 一郎    11/10       11/11  11  田中  一郎    11/14 11/14 12 田中 一郎    11/15       11/15 田中一郎さんについて見ていただきたいのですが、この場合、機械的に作業すると 二重に旅費を支払ってしまいそうな場合に関係する行は、10行目以外のすべてです。 氏名が同じで、出発日、到着日が重なっている部分がある場合はもちろんのこと、 連続して出張している場合(11月5日、11月6日)もその危険性があります。 (たとえば、11月3日から5日が東京→仙台、11月6日・7日が青森出張だった 場合、5日は東京に戻らずに仙台から青森まで行った可能性があるからです) こうした場合に、指定したセル(列)に「確認」という文字が入るように以下の関数を 組んで下にドラッグしているのですが、完全にはうまく動いてくれません。 12行目の11月15日の出張についても「確認」と入ってほしいのですが、11行目の14日の 行については「確認」と入るのに、12行目には入りません。 =IF(SUMPRODUCT((B$1:B$1000=B1)*(C$1:C$1000<=D1+1)*(D$6:D$1000>=C1))>1,"確認","")) うまくいかなかったので、以下のようにしたのですが、もっとダメでした。 上の関数はずっと前にここの掲示板で教えていただいたものを少しだけ変えたものなのですが、 そもそもなぜ、sumproduct関数の値を「>=1」ではなく「>1」としているのでしょうか? =,IF(OR(SUMPRODUCT((B$6:B$1000=B1)*(C$1:C$1000<=D1+1)*(D$1:D$1000>=C1))>=1,SUMPRODUCT((B$1:B$1000=B1)*(D$1:D$1000=C1-1))>=1),"確認","")) よろしくお願いいたします。

  • [エクセル]複数条件を抽出する関数

    エクセル初心者級です。 (関数はある程度理解できますが、マクロはできません) 今、休暇管理のエクセルシートを作っていて 下のような表を作成しています。     A      B      C     D     E     F… 1 [氏名]    [合計]   [4/1]  [4/2]  [4/3]  [4/4] 2 山田太郎  1.5日        半休        全休 3 田中花子  0.5日        半休 4 鈴木美穂  1.0日              全休 このデータを基に別シートのカレンダに落とし込みたいのです。     A     B     C     D     E     F     G 1 2011年4月 2  日曜   月曜   火曜   水曜   木曜   金曜   土曜 3                                 1 2 4                                   山田・田中 5   3     4     5     6     7     8 9 6 鈴木    山田 A1セルに年月を入れたら自動で日付が入るようカレンダは作成しました。 後は、基シート(上の表)でその該当日に 全休なり半休なりの言葉を入れている人を抽出し カレンダの日付の下に名前を入れられるようにしたいのです。 (1)カレンダと表の日付が一致していて (2)その日付の表の所に何かしらの文字が入っている人 を自動で抽出したできるようにしたいのですが 何か良い方法はないでしょうか。 このシートはパソコンを使い慣れていない人も使用するため できれば関数で一発でできるようなものがあれば有りがたいのですが… アドバイスをいただけないでしょうか。 よろしくお願いいたします。

  • 条件抽出の方法について教えてください。

    以下の家族名簿から代表者だけ抽出するにはどうしたらよいのでしょうか?以下のテキストファイルの場合、1項目の番号が家族番号になります。 member.txt 1,山田太郎 1,山田花子 1,山田凛 2,田中一郎 2,田中桂子 3,佐藤圭太 3,佐藤洋子 抽出結果を、 山田太郎,田中一郎,佐藤圭太としたいのです。 以上、わかる方がいらっしゃればアドバイスお願いします。

    • ベストアンサー
    • CGI
  • エクセルで出来ますか?

          A      B   C   D  1  山田太郎  32才  S  大阪  2  田中一郎  56才  A  熊本  3  井上次郎  71才  B  岐阜 上のようなデータベースがあります(実際には70件位) それを下のように年齢とC列の分類別に振り分け、なおかつ大阪にはセルの背景を赤、 熊本には黄色、岐阜は白を表示させたいです。 表には複数のデータが入ることになりますが、エクセルの関数で可能でしょうか? もし出来るなら関数式をご教授願います。     31-50     51-70     71- -------------------- S  山田太郎 -------------------- A            田中一郎 -------------------- B                     井上次郎 --------------------  

  • EXCEL関数

       A      B        C     D    E 1 田中(東京) 合格   8/1      鈴木 2 山田(大阪) 不合格  8/1      田中  3 鈴木(京都) 合格   8/3      山田 4 山田(大阪) 合格   8/4      伊藤 たとえばA1からE4にこのような入力がされているとします。(D列はなにも入力されていません。) 山田さんが合格のときF列に日付を表示し、そうでなければ空白を表示するにはどうすればよろしいのでしょうか? この場合F4に「8/4」と入るはずなのですが、 =IF(A4=E3 & "*",IF(B4="合格",C4,""),"") という式では空白になってしまうのです。 どうすればよろしいでしょうか。式には"山田"と入力せず、E3と示したいです。 分かる方教えてください。 EXCEL2000を使っています。

  • 月別の利用者実人員の集計方法

    下記のような利用者名簿があり、これを月別の実人員数を 4月 3人 5月 2人 のように出す方法はあるでしょうか。(アクセスです) 年月日|氏名 2007/04/01|山田一郎 2007/04/02|山田一郎 2007/04/05|田中太郎 2007/04/10|佐藤めぐみ 2007/04/15|佐藤めぐみ 2007/05/01|山田一郎 2007/05/02|山田一郎 2007/05/05|田中太郎

  • 多数のレターの購読管理

    たとえば、 山田太郎さんという人が、レターA、レターB、レターEを購読 山田花子さんという人が、レターC、レターFを購読 田中太郎さんという人が、レターAを購読 などの複数のレターを購読するような場合、それをアクセスのデータとして管理する場合、 氏名、購読紙 山田太郎 A,B,E 山田花子 C,F 田中太郎 A というようなテーブルを作り、その上で各種のフォームなどに組合わせていくものなのでしょうか? それとも、 氏名 購読紙 山田太郎 A 山田太郎 B 山田太郎 E 山田花子 C ・・・・ のようにしていくべきなのでしょうか? プログラミング初心者の質問です。 #質問の意図は、どっちが、(あるいは別の方法)扱いやすいのかというようなことを知りたい。これから作業するにあたって、後悔しなくて済むよう・・。

  • SUMPRODUCT関数で複数条件適用されない

    Sheet1 A列:日付 B列:注文番号 C列:品名 D列:整理番号 E列:数量 集計 A列:品名 B~AF列:日付(1~31日) 【集計】B~AF列の日付、A列の品名が 【Sheet1】A列の日付、C列の品名と一致したら 【Sheet1】E列の数量を【集計】の該当するセルに抽出する 式をSUMPRODUCT関数で作成しました。 例)10/1 りんご 20 【集計】B3セルに以下の数式を入れましたが なぜか数量が「0」のままになります。 =SUMPRODUCT('Sheet1'!$A$3:$A$200='集計'!B$2)*('Sheet1'!$C$3:$C$200="りん ご")*('Sheet1'!$E$3:$E$200) 特に数式のミスはないと思うのですが どうしても正しい値が入りません。 数式に間違いがあればご指摘いただけませんでしょうか。 また、他に良き方法があればご教示いただけるとありがたいです。

  • SUMPRODUCT 複数条件設定で、計算式結果がおかしいです。

    下記のような表があったと仮定します。   A  B   C   D 1 月度 店舗 品目 売上金額 2 4   A   あ  22300 3 4   B   あ  18700 4 4   C   あ  14500 5 4   A   い  17950 6 5   B   あ  44000 7 5   C   い  35000 8 5   A   う  12000 9 5   B   い  13400 この表から、 店舗「A」、品目「あ」の売上合計は、22300になり、 数式「=SUMPRODUCT(($B$2:$B$9="A")*($C$2:$C$9="あ")*$D$2:$D$9)」で計算できます。 店舗「A,B」、品目「あ」の売上合計は、85000になり、 数式「=SUMPRODUCT(($B$2:$B$9={"A","B"})*($C$2:$C$9="あ")*$D$2:$D$9)」で計算できます。 店舗「A」、品目「あ,い」の売上合計は、40250になり、 数式「=SUMPRODUCT(($B$2:$B$9="A")*($C$2:$C$9={"あ","い"})*$D$2:$D$9)で計算できます。 しかし、 店舗「A,B」、品目「あ,い」の売上合計は、116350なのですが、 数式「=SUMPRODUCT(($B$2:$B$9={"A","B"})*($C$2:$C$9={"あ","い"})*$D$2:$D$9)」では、数値がおかしく(35700に)なります。 数式の使い方が間違っているのでしょうか? アドバイスをお願いします。

専門家に質問してみよう