2017-06-18 10 views
2

私は非常に大きなデータセットを持っており、計算には3つのカラムが必要です。異なる列[A]、[B]、[C]を呼ぶことにしましょう。 [A]には、異なる会社名のリストがあり、それぞれの会社名が複数回出現する可能性があります。私はデータのためのテーブルを作成し、会社名をアルファベット順にソートしました。 A2:A5に会社名Xがあり、実行する必要がある計算がSUMPRODUCT(B2:B5; C2:C5)/ SUM(C2:C5)であるとします。どのように私はすべてのユニークな/別の会社の名前のためにこれを計算し、良い方法で結果を提示するのですか?すべてのユニークな値または別個の値の計算

答えて

1

はD2で、例えば、新しい列Dに次の式を使用する:

=IF(A2<>A1,SUMPRODUCT(--($A$2:$A$10=A2)*$B$2:$B$10*$C$2:$C$10)/SUMIF($A$2:$A$10,A2,$C$2:$C$10),"") 

およびAの値は、それが

変更A2結果を書き込む変更するたびにそれをドラッグ:A10、B2 :B10とC2:最後の行に対応するC10と固定参照の$を維持する
私は ";"と書いた設定に対応します。次のようになります。

=IF(A2<>A1;SUMPRODUCT(--($A$2:$A$10=A2)*$B$2:$B$10*$C$2:$C$10)/SUMIF($A$2:$A$10;A2;$C$2:$C$10);"") 
+0

ありがとう! :) – user361695

0

2つのINDEX関数と、その範囲の:を入れてください。

=IF(A2<>A3, SUMPRODUCT(INDEX(B:B, MATCH(A2, A:A, 0)):INDEX(B:B, MATCH(A2&"z", A:A)), INDEX(C:C, MATCH(A2, A:A, 0)):INDEX(C:C, MATCH(A2&"z", A:A)))/SUMIFS(C:C, A:A, A2), TEXT(,)) 

最初の発生がで発見され、

INDEX(B:B, MATCH(A2, A:A, 0)) 

(ソートされたデータ上の)最後の出現がで発見され、

INDEX(B:B, MATCH(A2&"z", A:A)) 

enter image description here

私はあなたを変え注意SUMをSUMIFSに追加して、人生を少し楽にしてください。

+0

ありがとうございます! :) – user361695

関連する問題