• ベストアンサー

SUM関数の範囲に#N/Aがあっても合計してくれる計算式

A列に氏名、B列に金額(計算式が入っている)があります。 B列の最終行に合計金額を出したいのですが、 B列に、#N/Aとなるセルがあり、 SUM関数を使うと結果がエラーになります。 なんとかエラー値のセルは無視して合計金額を出す計算式は ないでしょうか。 よろしく御指導下さい。

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

  • ベストアンサー
  • maron--5
  • ベストアンサー率36% (321/877)
回答No.5

=SUMIF(A1:A10,"<>#N/A") または、 =SUMIF(A1:A10,"<"&10^10) ★数値にマイナスが無ければ =SUMIF(A1:A10,">0")

NEWYORKERS
質問者

お礼

出来ました!見た目がシンプルな計算式なのにすごいと思いました。 それで御多忙とは思いますが、どうか次の2点について 教えて頂きたく宜しくお願い致します。 (1) =SUMIF(A1:A10,"<>#N/A") の式で、 以前学校で、""は、文字列を囲むときに使うと習ったのですが、 <>#N/A は、文字ではないし、<>の記号まで""の中に入っています。 どうしてでしょうか。(質問の文章がうまく書けなくてすみません。) (2) =SUMIF(A1:A10,"<"&10^10) の式で、 "<"&10^10 の意味と、10と10の間にある^は、なんでしょうか。 細かいことまでお聞きして本当に御面倒をおかけしますが、 宜しく御指導下さい。

NEWYORKERS
質問者

補足

すみません。(1)の質問を取り消します。 SUMIF関数の構文で、論理式も""で囲むことは基本でした。

その他の回答 (5)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.6

総合すると、関数では、3つの方法がある。回答は3つのどれかになろう。 (1)セルの最終の値をエラーが出ないように変える。 空白だと演算でエラーが出る場合、結果を先回りして、思うような、加算などに影響ない値(0や空白等)にしてしまう。 =IF(A1="","",式 (2)計算はさせるが、そしてエラーは出すが、セルの値をエラー値が出ないように変える =IF(Iserror(式),"",式) (3)計算してエラー値が出るところまではそのまま(エラーを出させて)にして、合計などの式で、それの影響が出ないようにする。 =SUMIF(・・ (4)まれに空白値や0でも影響の出ない仕組みの関数がある。 それがどれかを見分けるのも勉強のうち。 例 =AVERAGE(A1:A4)  でA3が空白でも正しい平均が出る。 0はデータとみなされる。 ーー セルの値が、0、空白、文字列、スペース、それに結果が該当なしなどが要注意。

NEWYORKERS
質問者

お礼

選択肢は2つかと思っておりました。 (1)結果を先回りする・・・のやり方を知りました。 さらに特例も教えてもらい、ありがとうございました。

  • masa_019
  • ベストアンサー率61% (121/197)
回答No.4

こんにちは。 B1:B10を合計したいとして、 合計を出したいセルに、 {=SUM(IF(ISNA(B1:B10),,B1:B10))} 配列数式なので、 Ctrl + Shift + Enter で式を確定します。

NEWYORKERS
質問者

お礼

エクセルの計算式で ,"", しか知らなかったので、 ,, だけで、""が中になくても出来るなんてはじめて知りました。 本当にありがとうござます。

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.3

配列数式で行う方法があるそうですが、自分も勉強中なので、参考サイトをお知らせします。 http://office.microsoft.com/ja-jp/excel/HA102284581041.aspx 一番下の方に、 >高度な配列数式の使用例 >エラー値を含む範囲の合計を求める というのがあります。ご参考まで。

NEWYORKERS
質問者

お礼

配列数式でこんなサイトがあるなんて知りませんでした。 しかもそのものが載っていてびっくりしました。 今の自分に活かせるものがいっぱい載っていました。 教えて下さってありがとうございます。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

B列に、#N/Aエラーが出ないようにすればいいのでは? B列の式を =IF(ISNA(今の式),"",今の式) としてみてください

NEWYORKERS
質問者

お礼

ご回答をありがとうございます。 ISNAというのもあることを知り、勉強になりました。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

定番でいえば B列をエラーをなくす式にします。 =IF(ISERROR(今の式),"",今の式) でエラーの時は空白にできます。 見た目も良くなると思いますが。

NEWYORKERS
質問者

お礼

ご回答をありがとうございます。