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

宜しくお願いします。

   A   B   C    D理想形
1  A001  0   A     15
2  C001  10  C     60
3  B004  20  B     20
4  A002  0   A     0
5  C002  50  C     0
6  A003  10  A     0
7  D002  0   D     20
8  A004  5   A     0
9  D005  20  D     0

上記のようなリストがあり、A列にIDのようなもの、それぞれB列に数字を持っています。グループID別には既にC列に所得してあります。
B列の数字をCのグループごとに合算し、各グループの一番数字の少ない人(AでいうとA001、BではB004)のD列に表示したいです。
sumifでいけるかと思ったのですが・・・解りにくい説明でしたら補足させていただきますので御教授いただけますでしょうか。
宜しくお願いします。

A 回答 (6件)

こんばんは。



以下の式は、配列式ですが、配列確定を必要としません。そのまま貼り付ければ、出来るはずです。計算スピードなども、通常の関数と同等レベルにはなっているはずです。

>一番数字の少ない人とはアルファベットのあとの数字が一番少ない人です。

は、SMALL関数で、一番少ない数の人の所に出すようになっています。


=IF(SMALL(INDEX(MID($A$1:$A$9,2,3)*(LEFT($A$1:$A$9,1)=C1),,),COUNTIF($A$1:$A$9,"<>"&C1&"*")+1)=MID(A1,2,3)*1,SUMPRODUCT((LEFT($A$1:$A$9,1)=C1)*$B$1:$B$9),0)

範囲を変える場合は、編集-置換で変更してください。
例:

$A$9 →$A$100

$B$9 →$B$100

なお、A1 からデータが始っているものとしていますから、例えば、2 行目からなら、
A1 →A2

C1 →C2

になります。
    • good
    • 0

こんにちは~



すでに正解が出ていますが、一応コレでもできる、かも…?

D1に

=IF(--SUBSTITUTE(A1,C1,"")=MIN(IF($C$1:$C$9=C1,--SUBSTITUTE($A$1:$A$9,C1,""),"")),SUMIF($C$1:$C$9,C1,$B$1:$B$9),0)

と入れて、Ctrl+Shiftを押しながらEnterで確定(配列数式)。

確定後、必要なだけ下にフィルコピー。
    • good
    • 0

こんにちは。

maruru01です。

D1に、

=IF(C1&TEXT(MIN(IF($C$1:$C$9=C1,--RIGHT($A$1:$A$9,3),RIGHT($A$1:$A$9,3)+1000)),"000")=A1,SUMIF($C$1:$C$9,C1,$B$1:$B$9),0)

と入力して、[Ctrl]と[Shift]を押しながら[Enter]を押して確定します。
(数式の両端に「{}」が付きます。)
これを下の行へコピー。

データが多いと処理が重くなるかも知れません。
    • good
    • 0

D1に


=IF(B1=MIN(IF($C$1:$C$9=C1,$B$1:$B$9,999999999)),SUMIF($C$1:$C$9,C1,$B$1:$B$9),0)
と入力し
SHIFT+CTRL+ENTERキーで確定し
フィルコピーします。
Aの場合、「各グループの一番数字の少ない人」がA001とA002の二人いるので、両方に値が入ってしまうのが理想形と異なります

この回答への補足

言葉足らずですみません。
一番数字の少ない人とはアルファベットのあとの数字が一番少ない人です。
Aだったら001、Bだったら004です。
001から始まるとも限らないし、また、リストに例を出すのをわすれましたが、001が下のほうに居る場合もあります。

皆様、二度手間にさせてしまってすみません。

補足日時:2005/08/03 18:57
    • good
    • 0

No1さんの回答と同じことですが



D1に
=IF(MATCH(C1,C:C,0)=ROW(),SUMIF(C:C,C1,B:B),0)

この回答は、グループで最初に出現した行に回答が入ります。

>各グループの一番数字の少ない人(AでいうとA001、BではB004)

「一番数字の少ない人」・・・ID番号、B列の値?

「一番数字の少ない人」を条件にすると式が複雑になります。

この回答への補足

言葉足らずですみません。
一番数字の少ない人とはアルファベットのあとの数字が一番少ない人です。
Aだったら001、Bだったら004です。
001から始まるとも限らないし、また、リストに例を出すのをわすれましたが、001が下のほうに居る場合もあります。

補足日時:2005/08/03 18:55
    • good
    • 0

こんにちは



D1に
=IF(COUNTIF(C$1:C1,C1)>=2,0,SUMIF($C$1:$C$9,C1,$B$1:$B$9))
下方向にコピー
(例題の表のような場合フィルハンドルのダブルクリックでもいいです)

で如何でしょうか?

この回答への補足

言葉足らずですみません。
一番数字の少ない人とはアルファベットのあとの数字が一番少ない人です。
Aだったら001、Bだったら004です。
001から始まるとも限らないし、また、リストに例を出すのをわすれましたが、001が下のほうに居る場合もあります。

補足日時:2005/08/03 18:53
    • good
    • 0

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