重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

こんばんは
悩んでいる問題が2つあります。
(1)  {=SUM($C$4:$F$4)*(C6:F6)} と簡単な数値をもちいて配列化して
(2)  C4*C6+D4*D6+E4*E6+F4*F6 と同じ答えが出せるのですが、
このC6の部分をnullにしてしまうと、答えが0になってしまいます。

(2)だったら0にはならず、思ったとおりの結果がでます。
<悩み1>
(1)の配列の方法で、C6を「0」または「null」にした場合の答えを通常(2)と同じような結果にするにはどうすればよいのでしょうか。

<悩み2>
できれば、C6に100%と入力するのも見た目が悪いので
記号化して「*」だったら100%と同じ結果になるようにしたいのですが、
何か方法はないものでしょうか。

     C列    D列   E列    F列
4行目 201084

6行目 50%10%100%50%21←合計
     ↑
   <悩み1>ここを0にした場合の、合計が0にならない方法と
   <悩み2>ここを*という記号にして100%と扱う方法

よろしくお願い致します。

A 回答 (1件)

色々と間違いに間違いを重ねています。



まず,ご相談に書かれた発端の式の
>{=SUM($C$4:$F$4)*(C6:F6)}

この式が,そもそも間違っています。

これがご相談投稿に際しての誤記ではない事は,
>このC6の部分をnullにしてしまうと、答えが0になってしまいます。

の部分から確かにそういう式を書いていると思われますが,その式は間違っているのでC6を空ではなく数値を入れても間違った結果が計算されます。


一般に推奨される正しい式:
=SUMPRODUCT($C$4:$F$4, C6:F6)
この式はただEnterして入力します( { }で囲われた式にしません)が,配列数式です。
計算に使う各セルに空白があっても意図した通りの結果が得られます。
計算に使う各セルに数値ではない値(たとえば「*」)が入力されても,計算出来ます。が,当該のセルはエクセルの一般ルールに従いゼロとして扱われます。そのままで「100%」と読ませる事はできません。


別の式で,あなたが間違えた式:
=SUM( ($C$4:$F$4)*(C6:F6) )
をCtrl+Shift+Enterします。
計算に使う各セルに空白があっても意図した結果が得られます。
計算に使う各セルに数値ではない値(たとえば「*」)が入力された場合,#VALUEのエラーになります。この式のままで計算を通す事はできません。



>「*」を100%にしたい
配列数式をごりごりと組んでいけば「やれば出来ます」が,イミフメイになるだけなので一般に推奨できません。
数字として計算させたいセルには普通に(丁寧に)数字を記入して作製しましょう。

計算例:
=SUM(IF(ISNUMBER(C6:F6),C6:F6,1)*$C$4:$F$4)
をCtrl+Shift+Enter
    • good
    • 0
この回答へのお礼

配列についてあまり、理解していませんでした。
色々とご指摘いただきありがとうございました。

お礼日時:2011/03/16 10:40

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