[[20040120160201]] 『部門ごとに値の種類の和を求めるには』(ちぃちゃん) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『部門ごとに値の種類の和を求めるには』(ちぃちゃん)

A列に部門名、B列に値が入っており、部門ごとに値の種類の和を関数を使って求めるにはどうしたらいいですか?

例)

 A列   B列
 A部門   2
 B部門   3
 B部門   2
 B部門   1
 C部門   6
 C部門   6
 A部門   1

となります。

答えとしては A:2,B:3,C:1 という答えがいいのですが、難しいのでしょうか?

この問題で約2日かかっております。
どうぞよろしくお願いいたします。


 作業列を使う方法しか思いつきませんでした。
      A   B      C        D         E
 1  部門    値   作業列  集計する部門   集計
 2 A部門     2           A部門   
 3 B部門     3           B部門
 4 B部門     2           C部門
 5 B部門     1
 6 C部門     6
 7 C部門     6
 8 A部門     1

 作業列をC列、集計する部門名をD列、集計をE列でとるとします。
 作業列C2へ
 =SUMPRODUCT((($A$2:A2&$B$2:B2)=(A2&B2))*1)
 として、C8までフィルドラッグ。

 E2へ
 =SUMPRODUCT(($A$2:$A$8=D2)*($C$2:$C$8=1))
 としてE4までフィルドラッグ。
 (KAMIYA)


 (KAMIYA)さん、僕も=sumifか=cuntifかなと考えたのですがC1:1と言う答えが

どうしてもわかりませんでした

どのような考えをしたのですか

(藤本9)


 作業列の式
 もしかしたら、COUNTとIFでの配列数式でできるかもしれませんが、
 あまり使いこなせていない面があるので、慣れているSUMPRODUCTでやってみました。

 =SUMPRODUCT((($A$2:A2&$B$2:B2)=(A2&B2))*1)

 ($A$2:A2&$B$2:B2)
 A列とB列の同じ行のデータをくっつけた文字列の配列を作ります。
 =(A2&B2)
 上記の配列と数式の入力された行のA列&B列の文字列との比較を行います。

 結果としてA列&B列のデータが初出であれば1、2件目ならば2という風な数値が返ります。

 集計の式
 =SUMPRODUCT(($A$2:$A$8=D2)*($C$2:$C$8=1))
 ($A$2:$A$8=D2)
 A列のデータとD2の比較の結果の配列が返ります。(同じならTRUE、違えばFALSE)
 ($C$2:$C$8=1)
 作業列が 1 かどうか比較した結果の配列が返ります。

 上記二つの配列の乗算で同じ行の結果がTRUE同士なら1、どちらかがFALSEなら0が
 かえります。最後にSUMPRODUCTでその合計が返ります。
 (KAMIYA)


 D1に=SUM(IF(FREQUENCY(IF(A$1:A$7=C1,B$1:B$7),B$1:B$7),1))
 として、Ctrl+Shift+Enter。これをD3までフィルドラッグ。
 ということでは、どうでしょう?      (LOOKUP)

  A   B  C   D

 1 A部門 2  A部門 2
 2 B部門 3  B部門 3
 3 B部門 2  C部門 1
 4 B部門 1		
 5 C部門 6		
 6 C部門 6		
 7 A部門 1

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.