プロが教えるわが家の防犯対策術!

すみませんが、どなたか教えてください!
エクセルの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)
とすれば『山田』で検索した『作業量』の【合計値】が返ってくるように、
『山田』で検索した『現場名』の【最多値】を返したいのです・・。
・・無理でしょうか?

ご存知の方、いらっしゃいましたら是非教えてください!
よろしくお願いいたします!!

A 回答 (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」のエラーになります。
    • good
    • 0

たまたま、以下の様に最多値が重複した場合です。


  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)))) 下へコピィすれば
重複しても大丈夫です。
    • good
    • 0

  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))
    • good
    • 0

NO1です。


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

次の方法は如何でしょうか。


配列数式の為、入力完了時にshift+ctrl+enterキーを同時押下して下さい。
=INDEX(B:B,SUMPRODUCT((C2:C9="山田")*(D2:D9=MAX(IF(C2:C9="山田",D2:D9)))*ROW(A2:A9)))
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/02/03 19:18

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!