アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセルで、A列B列C列の1行目から100行目まで、それぞれ数値が入っているとします。
各行のA列とB列の数値の小さい方に、C列の数値をかけた値の和を求めたいです。
D列を作業列にするなら、D1に「=MIN(A1,B1)*C1」として、これをD100までコピーして、「=SUM(D1:D100)」で得られる数値を求めたいのですが、元となるデータが頻繁に追加されることも有り、作業列の追加が難しい状況です。
SUMPRODUCT関数を使おうにも、「=SUMPRODUCT(MIN(A1:A100,B1:B100),C1:C100)」では、A1からB100までの200セルのうちの最小値に、C1からC100の数値をそれぞれかけた値の和が返されてしまいます。
なにかよい方法があれば、お知恵を拝借できないでしょうか。

A 回答 (1件)

こんにちは!



範囲を最初から多目にしておいてはダメですか?
SUMPRODUCT関数はどこかの列が空白の場合は「0」とみなされ合計しても結果に変化はないはずですので・・・

どうしても作業列を使用したくない場合の一例です。
表示したいセルに
=SUMPRODUCT(IF(A1:A1000<=B1:B1000,A1:A1000,B1:B1000),C1:C1000)

配列数式になりますので、Ctrl+Shift+Enterで確定!
この画面からコピー&ペーストする場合は上記数式をドラッグ&コピー! → 表示したいセルを選択 → 数式バー内に貼り付け  → そのまま(編集可能なまま)
Ctrl+Shiftキーを押しながらEnterキーで確定します。
数式の前後に{ }マークが入り配列数式になります。

※ SUMPRODUCT関数自体が配列数式になりますが、
配列数式内に配列数式を入れた感じになります。m(_ _)m
    • good
    • 0
この回答へのお礼

助かりました

ありがとうございます。
おっしゃるやり方で出来ました!
また、配列数式を使うなら、SUMPRODUCTをつかわずとも、
{=SUM(IF(A1:A1000<=B1:B1000,A1:A1000,B1:B1000)*C1:C1000)}でも可能なんですね。
実は教えていただいたのと同じような数式を、配列数式にはせずに、SUMPRODUCT関数だけで計算しようとしてダメだったんですが、配列数式ならば計算可能だとは気づきませんでした。
SUMPRODUCT関数と配列数式は、実質同じものだと思っていたんですが、こんなところで違いが出てくるとは思いませんでした。

お礼日時:2015/06/20 12:26

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