いつでも医師に相談、gooドクター

Microsoft Excel2013です。
小計用のセルは設けずに、一発で合計を計算する式を教えてください。

{=SUM(A2:A5*B2:B5)} や =SUMPRODUCT(A2:A5,B2:B5)
のような感じですが、小計式が少し複雑です。

=A2*$A$1*MIN(B2,$B$1) …小計式1行目
  :
=A5*$A$1*MIN(B5,$B$1) …小計式4行目

上記の小計式1~4行目の合計を一発で求める方法を教えてください。

gooドクター

A 回答 (2件)

こんばんは



どうやら、MIN関数は配列計算をしてくれないようですね。

一番計算負荷が少なそうなのは、素直に加算する式でしょうか
=(A2*MIN(B2,B1)+A3*MIN(B3,B1)+A4*MIN(B4,B1)+A5*MIN(B5,B1))*A1

配列数式でもよければ
=SUM(A2:A5*IF(B2:B5>B1,B1,B2:B5)*A1)

配列数式を避けるのならば
=SUMPRODUCT(A2:A5*((B2:B5<B1)*B2:B5+(B2:B5>=B1)*B1)*A1)

とかでしょうか。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
教えてくださった式はどれも期待通りの結果になりました。

素直に加算する式は確かに負荷が少なそうですが、加算する個数が実はもう少し多いので可読性の問題がありそうです。

配列数式は最もシンプルで可読性は良いのですが、パフォーマンスとの相談になりそうです。

SUMPRODUCT を用いた式が最も無難ですね。

どれを採用するかは、実際のデータで検証して決めます。
3つの方法から選べるなんて贅沢ですね (^^)

お礼日時:2021/01/28 22:19

範囲をA2:A5、B2:B5として


=SUM(A2:A5*$A$1*MIN(B2:B5,$B$1))
配列数式ですので、Shift+Ctrl+Enterで確定でいかがですか。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
教えていただいた式では、{=MIN(B2:B5,$B$1)} が先に実行されるので、すべてのA列に同じ値(B1:B5の最小値)を積算してしまい、期待した結果になりません。

引き続きよろしくお願い致します。

お礼日時:2021/01/28 21:15

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

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

このQ&Aを見た人がよく見るQ&A

このカテゴリの人気Q&Aランキング