SUMPRODUCTパート2の代替


0

同じ行(ちょうど異なる列)にある2つの期間と、同じ行にある2つの整数については、別の行に値があった前の質問と同等の数式を計算しようとしています。

ここに画像の説明を入力してください

使ってみた

=SUMPRODUCT(duration1,duration2,number1,number2)/sum(number1,number2) 

しかし、それらが異なる行(ただし同じ列)にあるときのように、正しい答えが得られません。

また、前の質問で行ったように、日付を基準として追加する方法もわかりません。

こちらからサンプルワークブックをダウンロードできます


SUM(E4*D4,I4*J4)/SUM(D4,I4)
スコットクレーナー

回答:


1

SUMPRODUCT()関数の動作を正確に理解していないため、問題が発生しているようです。

何それがないと、乗算することで、すべて一緒に引数の各要素を、そしてその後、結果の配列を合計します。

例として次をご覧ください。

=SUMPRODUCT(A1:A3, B1:B3, C1:C3, D1:D3)

この式を評価する2つの手順は次のとおりです。

=SUMPRODUCT({A1*B1*C1*D1; A2*B2*C2*D2; A3*B3*C3*D3})
=A1*B1*C1*D1 + A2*B2*C2*D2 + A3*B3*C3*D3


特定の場合、実際に行う必要があるのは、2つの sumproductの合計を取得することです。

=SUM(SUMPRODUCT(duration1,number1),SUMPRODUCT(duration2,number2))/SUM(number1,number2)

提供されたサンプルブックの場合、式は次のF5ようになります。

=SUM(SUMPRODUCT('CHAT US Raw Data'!I6,'CHAT US Raw Data'!P6),SUMPRODUCT('CHAT US Raw Data'!T6,'CHAT US Raw Data'!U6))/SUM('CHAT US Raw Data'!I6,'CHAT US Raw Data'!T6)

これは、SUMPRODUCT()関数内で明示的に乗算を実行し、関数を使用して結果の配列を合計することと同じであることに注意してください(パート1の質問の答えで行われたように)。

=SUM(SUMPRODUCT(duration1*number1),SUMPRODUCT(duration2*number2))/SUM(number1,number2)

実際の式でF5

=SUM(SUMPRODUCT('CHAT US Raw Data'!I6*'CHAT US Raw Data'!P6),SUMPRODUCT('CHAT US Raw Data'!T6*'CHAT US Raw Data'!U6))/SUM('CHAT US Raw Data'!I6,'CHAT US Raw Data'!T6)

この式は、以前の質問に従って、一致する日付(および該当する場合は最初に一致する学生名)を確認するように調整する必要があります。

配当については、追加の日付チェック期間を追加できます。

SUM()ただし、日付チェックを追加する前に、除数関数を変更する必要があります。2つのsumif関数の合計が必要です(複数行の数式を拡張したい場合):

=SUM(SUMPRODUCT((date1=date)*duration1*number1),SUMPRODUCT((date2=date)*duration2*number2))
/SUM(SUMIF(date1,date,number1),SUMIF(date2,date,number2))

実際の式でF5

=SUM(SUMPRODUCT(('CHAT US Raw Data'!H6=E5)*'CHAT US Raw Data'!I6*'CHAT US Raw Data'!P6),SUMPRODUCT(('CHAT US Raw Data'!S6=E5)*'CHAT US Raw Data'!T6*'CHAT US Raw Data'!U6))/SUM(SUMIF('CHAT US Raw Data'!H6,E5,'CHAT US Raw Data'!I6),SUMIF('CHAT US Raw Data'!S6,E5,'CHAT US Raw Data'!T6))

SUMPRODUCT()(結果の暗黙的なブール型強制で)乗算を手動で実行する代わりに、二重負の単項演算子を使用して日付チェックを明示的に1と0に強制します。たとえば、次の(date1=date)ようになり--(date1=date)ます。

=SUM(SUMPRODUCT(--(date1=date),duration1,number1),SUMPRODUCT(--(date2=date),duration2,number2))
/SUM(SUMIF(date1,date,number1),SUMIF(date2,date,number2))

実際の式で:

=SUM(SUMPRODUCT(--('CHAT US Raw Data'!H6=E5),'CHAT US Raw Data'!I6,'CHAT US Raw Data'!P6),SUMPRODUCT(--('CHAT US Raw Data'!S6=E5),'CHAT US Raw Data'!T6,'CHAT US Raw Data'!U6))/SUM(SUMIF('CHAT US Raw Data'!H6,E5,'CHAT US Raw Data'!I6),SUMIF('CHAT US Raw Data'!S6,E5,'CHAT US Raw Data'!T6))

最後に、sumif divisorには同等のsumproductバージョンがあります。

例えば、

SUM(SUMIF(date1,date,number1),SUMIF(date2,date,number2))

に等しい

SUM(SUMPRODUCT((date1=date)*number1),SUMPRODUCT((date2=date)*number2))

と同様

SUM(SUMPRODUCT(--(date1=date),number1),SUMPRODUCT(--(date2=date),number2))
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.