プロが教えるわが家の防犯対策術!

エクセル2000です。
ワークシート関数でこんな場合どうすればよいでしょうか?
添付画像のようにA列に数値データがあります。
途中に空白(数式で ="" が表示されています。)のセルもあります。
このA列のデータを各セルそれぞれ四捨五入してからの合計を求めたいのです。

画像ではB列を作業列にして、
=IF(ISNUMBER(A2),ROUND(A2,0),0) と、="" への対応をして
ROUNDして合計していますが、作業列を使わなくとも良い方法があればと思い質問いたしました。
途中の空白が、数式による ="" では無くほんとの空白であれば、
=SUMPRODUCT((ISNUMBER(A2:A11))*ROUND(A2:A11,0))
で、一発で求められるのですが・・・・・。

ご教示いただければ幸いです。
宜しくお願いいたします。

「エクセルで各セルそれぞれ四捨五入してから」の質問画像

A 回答 (5件)

以下の式を入力し、Ctrl+Shift+Enterで確定します。



=SUM(IF(ISNUMBER(A2:A11),ROUND(A2:A11,0),""))
    • good
    • 0
この回答へのお礼

さっそくありがとうございます。
やはり配列数式になってしまうのですね・・・。

配列数式以外の方法では無理なのでしょうか?

お礼日時:2009/11/19 17:40

>配列数式以外の方法では無理なのでしょうか?



空白セルがないとき使用できる、もともとのSUMPRODUCTの数式もCtrl+Shift+Enterは使っていませんが配列数式です。

このような計算をするには(ROUND関数を四捨五入に使う場合には)いずれの関数を使うにしろ、最終的には配列数式(=配列を取り扱った数式)で対応するしかありません。
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/11/20 15:55

>=IF(ISNUMBER(A2),ROUND(A2,0),0) と、="" への対応をして


ならば =IF(A2="",0,ROUND(A2,0)) の方が素直では?
作業列で良いと思うのですが、計算速度も速いですしね

例示のように負がないなら
=SUMPRODUCT(TEXT("0"&A2:A11,"0")*1)
    • good
    • 0
この回答へのお礼

> =IF(A2="",0,ROUND(A2,0)) の方が素直では?

仰せのとおりです。

=SUMPRODUCT(TEXT("0"&A2:A11,"0")*1)

なんという柔軟な発想なのでしょう!
感心しました。
ありがとうございます。

お礼日時:2009/11/20 15:57

#3です。

負も対応できました。
=SUMPRODUCT((TEXT(A2:A11,"0")&"0")/10)
# 後一歩が足りないんだよなあ。参考まで
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/11/20 15:58

参考までに



Ctrl+Shift+Enterするのが面倒なら、以下のような数式で四捨五入した合計を求めることができます。

=SUMPRODUCT(ROUND((0&A2:A11)*1,0))
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/11/20 15:59

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