• 締切済み

エクセル、複数条件での最多値を調べるには?

すみませんが、どなたか教えてください! エクセルのSUMIF関数みたいな感じで、 (検索範囲,検索条件,集計範囲)= 集計範囲でもっとも多い入力値(文字) となるような関数や式・・・ないでしょうか? 具体的には   A    B      C   D 1 月日  現場名  名前 作業量 2 1/10  ○○店  山田  2 3 1/10  ●●店  笹木  2 4 1/11  ●●店  山田  3 5 1/12  ◎◎店  山田  2 6 1/12  ○○店  笹木  1 7 1/12  ○○店  川原  3 8 1/13  ●●店  山田  1 9 1/13  ◎◎店  川原  2 という表があって、指定した氏名からその人がもっとも多く入った現場名が返ってくる、というものです。 『山田』なら『●●店』と。 =SUMIF(C2:C9,"山田",D2:D9) とすれば『山田』で検索した『作業量』の【合計値】が返ってくるように、 『山田』で検索した『現場名』の【最多値】を返したいのです・・。 ・・無理でしょうか? ご存知の方、いらっしゃいましたら是非教えてください! よろしくお願いいたします!!

みんなの回答

  • rukuku
  • ベストアンサー率42% (401/933)
回答No.5

はじめまして 別解です。 1.------------------------- G1に検索したい人の名前(例:山田)を入力します。 H1に =IF(C2=$G$1,D2,"") 以下、H9までオートフィル G3に =MAX(H2:H9) とします。 これで、「MAXIF」関数が実現できます。 2.------------------------- 現場名を検索するためには、 I1に =B2 以下、I9までオートフィル G2に =VLOOKUP(G3,H2:I9,2,FALSE) と入力します。 検索した人の作業業のMAXが重複した場合には、その人のMAXの中で一番上のデータが採用されます。 検索した人がいない場合には、「#N/A」のエラーになります。

全文を見る
すると、全ての回答が全文表示されます。
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.4

たまたま、以下の様に最多値が重複した場合です。   A    B      C   D   E   F 1 月日  現場名  名前 作業量 山田 2 1/10  ○○店  山田  2 3 1/10  ●●店  笹木  2 4 1/11  ●●店  山田  3 5 1/12  ◎◎店  山田  3 6 1/12  ○○店  笹木  1 7 1/12  ○○店  川原  3 8 1/13  ●●店  山田  1 9 1/13  ◎◎店  川原  2 E1セルに検索値として 山田 といれる F1セルに 山田さんの最多値を表示するために =MAX(IF(C2:C9=E1,D2:D9,0)) といれてCtrl+Shift+Enter(配列関数) E2セルに =IF(AND(C2=E$1,D2=F$1),ROW(),"") 下へコピィ F2セルに =IF(ISERROR(SMALL(E:E,ROW(A1))),"",INDEX(C:C,SMALL(E:E,ROW(A1)))) 下へコピィすれば 重複しても大丈夫です。

全文を見る
すると、全ての回答が全文表示されます。
noname#204879
noname#204879
回答No.3

  A   B   C   D 1 月日 現場名 名前 作業量 2 1/10 ○○店 山田    2 3 1/10 ●●店 笹木    2 4 1/11 ●●店 山田    3 5 1/12 ◎◎店 山田    2 6 1/12 ○○店 笹木    1 7 1/12 ○○店 川原    3 8 1/13 ●●店 山田    1 9 1/13 ◎◎店 川原    2   F   G    H    I    J 1 名前 ○○店 ●●店 ◎◎店 最多現場 2 川原    3    0    2 ○○店 3 笹木    1    2    0 ●●店 4 山田    2    4    2 ●●店 G2: =SUMPRODUCT(($C$2:$C$9=$F2)*($B$2:$B$9=G$1),$D$2:$D$9) J2: =INDEX(G$1:I$1,,MATCH(MAX(G2:I2),G2:I2,0))

全文を見る
すると、全ての回答が全文表示されます。
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

NO1です。 回答した数式では、同一の名前・作業量が重複しているとうまく抽出できませんので、読み飛ばして下さい。

全文を見る
すると、全ての回答が全文表示されます。
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

次の方法は如何でしょうか。 配列数式の為、入力完了時にshift+ctrl+enterキーを同時押下して下さい。 =INDEX(B:B,SUMPRODUCT((C2:C9="山田")*(D2:D9=MAX(IF(C2:C9="山田",D2:D9)))*ROW(A2:A9)))

gomupantu
質問者

お礼

早速のご回答ありがとうございます!! 確かに●●店が返ってきました! 今の私ではもうしばらく数式を見つめないと理解できそうもありませんが・・。 それと配列数式についても勉強させていただきます・・。 ありがとうございました。 また、質問させていただくかもしれませんが、その際にはよろしくお願いいたします。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルで条件付きで集計する方法

    エクセルで検索範囲をA列、集計(合計)する範囲をC列とした場合、 SUMIF(A列、検索条件、C列)の関数式を使うと思いますが、 検索範囲がA列とB列にとなる場合には、検索範囲、検索条件は どうつくればよいのでしょうか?

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

    例えば、以下のような表があるとします。 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を使って考えてみたのですが、 うまく集計することができませんでした。 どうぞよろしくお願いします。

  • Excelで複数の条件の合計を出す

    excelでsumif関数ありますよね、ある範囲でA=Bなら合計するという。 このifの部分の条件を2つ以上設定する方法ありましたら教えてください。イメージとしては、A=BかつC=Dの場合のもののみある範囲の値を合計する。 素人ですみませんがよろしくお願いします。

  • EXCEL SUMIFについて

    EXCELでSUMIF関数を使って金額が集計される様になってるのですが 何故かBATTERYとTHERMISTORという品名だけが集計されません↓ 何故でしょうか?他の品名に書き換えると集計されるます。 ちなみに関数は=SUMIF(A1:A351,"BATTERY",G1:G351)と (範囲,検索条件,合計範囲)のセオリー通りでやってるのですが…

  • エクセルにおける複数条件の関数について

    下記の内容を別シートに集計したいのですが、 関数が間違えているのかうまく数値が表示されません。 Aシートに以下の情報が入っています。 Cの列、C5からC54までの範囲に1から100の間で数字が入っています。 Dの列、D5からD54までの範囲に2013/6/1から2013/7/15までの日付が入っています。 例:C5に2と入っていて、D5に2016/6/3と入力されていれば該当し、 C5の2という値を別シートにその他のC列とあわせて合計を表示されるようにしたいです。 表示をさせたいBシートには、 D列のD5からD54範囲内の6月分(2014/6/1から2014/6/30まで)で、 C列に入力されている数値の合計を1つのセルに表示させたいです。 この場合の関数をお伺いしたい内容になります。 今、うまくいかない関数は、以下のような内容です。 =SUMPRODUCT(('201406'!$C$5:$C$54="○")*('201406'!$BW$5:$BW$54>="2014/6/1"*1)*('201406'!$BW$5:$BW$54<"2014/7/1"*1)) これだと、C列に○が入っていれば、その合計を表示できると思いますが、 1や5などの数字の合計を表示させるには・・で、困っています。 アドバイスいただけたらと思います。 ※関数をそのまま入力いたいと思っていますので、 返信は、関数でアドバイスいただけたら幸いです。 宜しくお願い致します。

  • エクセルで複数のシートからデータを集計したい。

    エクセルで複数のシートから、あるデータを取り出し、別のシートに集計したいのですが、関数を入力すると莫大な量になってしまいました。 関数とは別の方法で集計する方法をご教授お願いします。 1日~31日のシートがあります。 シート1日内容は A   B    C    D      E     1  NO  原因(1) 原因(2)  原因(3)   2 101   10       15   (b2+c2+d2)  3 105   20   40       (b3+c3+d2) 4 108       20   100 (b4+c4+d4) といった内容です。 1日から31日のセルA2などは固定した数値でありません。 なんで、例えばA3に101が入っている場合があります。 集計シートは A   B    C    D      E     1  NO  原因(1) 原因(2)  原因(3)   2 101               (b2+c2+d2)  3 102               (b3+c3+d2) 4 103              (b4+c4+d4) のようになってます。 B2に=SUMIF('1日'!A2:A4,A2,'1日'!b2:b4)+SUMIF('2日'!A2:A4,A2,'2日'!b4:b4)+・・・・・が31日のシート分まで作成するとファイルが重くなりすぎてしまい困っております。 よろしくお願いします。

  • EXCEL97 関数で検索範囲が複数のとき

    お世話になります。 SUMIF関数で、検索範囲が2箇所に渡るという指定は可能でしょうか。 例えば、D6およびD21:D30を範囲に指定したいのですが,D7からD20に対応する部分は合計したくないのです。 つまり、 =SUMIF(D21:D30,"*",H21:H30) この式に、記号一つくらいでD6を加えられたらいいなと思う次第です。 例えばテキトウですが、=SUMIF(D6&D21:D30,"*",H21:H30)とか? もし、複雑な式になるならあきらめます。 宜しくお願い致します。

  • sumifのように条件に見合う合計を「数値」ではなく「データ(セル)」の合計を集計したいのですが

    SUMIFを使って合計範囲の数値の合計を求めるように、合計範囲の「データが入力されているセル」の合計を求めたいのですが、何かいい関数はありませんでしょうか? 言い換えると、COUNTAを使ってセルの個数を求める場合に検索条件をSUMIFのように特定の検索条件を指定できる関数です。 いろいろ探しましたがうまい方法が見当たりません。 使用方法としては、各曜日ごとのメニュー別の売上金額の合計と人数の合計を求めようとしています。 ワークシートに入力されてるデータは ・各曜日 ・顧客名 ・メニューと支払われた金額 です。 SUMIFを使って、検索条件に各曜日をあてはめ、曜日ごとのメニュー別売上は集計できました。 金額が入力されているセルを合計すれば各メニューごとの人数まで集計できるはずなのですが、SUMIFが「数値」しか集計できない為にそれに代わる関数を探しています。 どうぞよろしくお願い致します。

  • エクセル関数について

    エクセルでデータベースを作っています。別のシートからデータを抽出して合計を出すというものなのですが、どうも関数がうまくいきません。 別のシートには日付・現場名・費目・時間・金額などが入力されています。(オートフィルタが使われていました)そしてデータベースには現場名と費目から金額の合計を抽出したいのですが、どんな関数を使っていいのか分かりません。 =SUMPRODUCT((条件1)*(条件2)*....(集計する数値)) =SUMPRODUCT((入力!$C$3:$C$9810=Sheet1!$B3)*(入力!$G$3:$G$9810=Sheet1!C$1)*(入力!$K$3:$K$9810)) というものを使っていたのですが、別シートのデータが入力されていない所まで範囲を指定するとエラーになってしまいます。 =sumifだとエラーにならないのですが、私の技術では1つの条件(現場名だけ)しか抽出、合計できません。 入力されていない所を範囲指定してもエラーにならなくて上の事が出来る関数はないでしょうか、よろしくおねがいします。

  • SUMIF関数の検索条件が複数の場合の式は?

    はじめまして。 SUMIF関数を用いているのですが、検索条件にAまたはBまたはCに合致する合計を出したいのですが、以下の式の場合、検索条件には何を入れたらいいのでしょうか? SUMIF(範囲,"A"または"B"または"C",合計範囲)の、,"A"または"B"または"C"のところです。A,B,Cは文字です。 "A"*"B"*"C"では無いですよね? 宜しくお願い申し上げます。

専門家に質問してみよう