• ベストアンサー

エクセルで各セルそれぞれ四捨五入してからの合計を求めたいのです

エクセル2000です。 ワークシート関数でこんな場合どうすればよいでしょうか? 添付画像のようにA列に数値データがあります。 途中に空白(数式で ="" が表示されています。)のセルもあります。 このA列のデータを各セルそれぞれ四捨五入してからの合計を求めたいのです。 画像ではB列を作業列にして、 =IF(ISNUMBER(A2),ROUND(A2,0),0) と、="" への対応をして ROUNDして合計していますが、作業列を使わなくとも良い方法があればと思い質問いたしました。 途中の空白が、数式による ="" では無くほんとの空白であれば、 =SUMPRODUCT((ISNUMBER(A2:A11))*ROUND(A2:A11,0)) で、一発で求められるのですが・・・・・。 ご教示いただければ幸いです。 宜しくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

#3です。負も対応できました。 =SUMPRODUCT((TEXT(A2:A11,"0")&"0")/10) # 後一歩が足りないんだよなあ。参考まで

merlionXX
質問者

お礼

さらに、なんとまあ!! これで負数でもOKになりました。 ありがとうございます。

その他の回答 (4)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.5

参考までに Ctrl+Shift+Enterするのが面倒なら、以下のような数式で四捨五入した合計を求めることができます。 =SUMPRODUCT(ROUND((0&A2:A11)*1,0))

merlionXX
質問者

お礼

何度もありがとうございます。 正の数でうまくいくことを確認しました。

回答No.3

>=IF(ISNUMBER(A2),ROUND(A2,0),0) と、="" への対応をして ならば =IF(A2="",0,ROUND(A2,0)) の方が素直では? 作業列で良いと思うのですが、計算速度も速いですしね 例示のように負がないなら =SUMPRODUCT(TEXT("0"&A2:A11,"0")*1)

merlionXX
質問者

お礼

> =IF(A2="",0,ROUND(A2,0)) の方が素直では? 仰せのとおりです。 =SUMPRODUCT(TEXT("0"&A2:A11,"0")*1) なんという柔軟な発想なのでしょう! 感心しました。 ありがとうございます。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

>配列数式以外の方法では無理なのでしょうか? 空白セルがないとき使用できる、もともとのSUMPRODUCTの数式もCtrl+Shift+Enterは使っていませんが配列数式です。 このような計算をするには(ROUND関数を四捨五入に使う場合には)いずれの関数を使うにしろ、最終的には配列数式(=配列を取り扱った数式)で対応するしかありません。

merlionXX
質問者

お礼

ありがとうございます。 CSEを使う関数という意味で配列関数と呼びました。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

以下の式を入力し、Ctrl+Shift+Enterで確定します。 =SUM(IF(ISNUMBER(A2:A11),ROUND(A2:A11,0),""))

merlionXX
質問者

お礼

さっそくありがとうございます。 やはり配列数式になってしまうのですね・・・。 配列数式以外の方法では無理なのでしょうか?

関連するQ&A