プロが教える店舗&オフィスのセキュリティ対策術

エクセルで
A1からA15まで数式が入っているのですが
所々にエラー値(#N/A)が混ざっています。

セルA16にSUM関数で合計を出そうとしたら
#N/Aとエラー値が出て合計値がでません

エラーを無視して今表示されている数字だけでも合計することは
出来ますか

A 回答 (9件)

[ANo.3 この回答へのお礼]に対するコメント、



   A  B
1   1  1
2   2  2
3  #N/A  0
4   4  4
5   5  5
6   6  6
7  #N/A  0
8   8  8
9   9  9
10  10 10
11  11 11
12 #N/A  0
13  13 13
14  14 14
15  15 15
16 #N/A 98

1.セル B1 に式 =IF(ISNA(A1),0,A1) を入力して、
  此れを下方にズズーッとセル B15 まで複写
2.セル B16 に式 =SUM(B1:B15) を入力

「当該配列数式は、ステップ2の式中にステップ1の式を当てはめたのだ」と考えたら納得できませんか?つまり…

=SUM(B1:B15)
   ↓
=SUM(IF(ISNA(A1),0,A1))
   ↓
{=SUM(IF(ISNA(A1:A15),0,A1:A15))}

ちなみに、A16 には式 =SUM(A1:A15) を入力しているので、#N/A と表示されています。
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。

少し頭が混乱していますが・・・・
つまりこうでしょうか
配列数式は、二つの数式を矛盾なく組み合わせるための
考え方(数式の組み合わせ)・・

すっきりしていないのですが
何回も使ってみて体で覚えるようにします。

ありがとうございました。

お礼日時:2007/07/01 23:13

◆補足


=SUMIF(A1:A15,"<"&10^10)

★A1:A15の範囲のうち、10^10(10000000000)未満の数字の和です
★これなら、ほぼすべての数字が対象になるでしょう
    • good
    • 0
この回答へのお礼

返信のお礼が遅れて申し訳ありません

>★A1:A15の範囲のうち、10^10(10000000000)未満の数字の和です
>★これなら、ほぼすべての数字が対象になるでしょう

なるほど10の10乗で回避する方法はユニークですね
ひとつの選択岐として覚えておいて損はなさそう

ありがとうございました

お礼日時:2007/07/25 21:27

◆こんな方法もありますよ


=SUMIF(A1:A15,"<"&10^10)

★もし、マイナスがなければ
=SUMIF(A1:A15,">0")
    • good
    • 0
この回答へのお礼

へ~
=SUMIF()って、けっこう器用な関数ですね

差支えなければ補足説明をお願いできないでしょうか
特に
=SUMIF(A1:A15,"<"&10^10)・・・・この

,"<"&10^10)・・・はどのような意味になるのでしょうか

お願いいたします。

お礼日時:2007/07/03 23:42

こんばんは。



>今同じシートで循環参照のメッセージが出ているのですが
>緊急に問題としていませんので
>別の機会に改めて質問させていただきます。

いえ、それでは解決になっていませんね。(;_;)
早急に直さないと……。

循環参照は、同じ計算を繰り返しているので、エラーダイアログで出来たりして、正しい値が出てきません。数式のある場所の同じセルのアドレスや、セルのアドレスを、数式同士で、キャッチボールして計算させるような場合に出てきます。
    • good
    • 0
この回答へのお礼

>早急に直さないと……。

そうなんですか・・
この現象が今どのように私のシートに影響しているのか
わからないので、質問のしようがないのです。

今しばらく様子を見て色々探ってみます。
正しい値が出ないとなると厄介ですね・・・
自分で質問できる態勢になった時に書き込みますので

そのときはどうぞ宜しくお助け下さい。
感謝!!

お礼日時:2007/07/01 23:06

余り勧める方法ではないが、下記をやってみました。

無理して、こういうこともできるということ。
A1:A10が
1
2
3
#DIV/0!
1
2
#DIV/0!
3
5
2
#DIV/0! は0で割ったため表示されている。
A11に=SUMIF(A1:A10,"<>#DIV/0!",A1:A10)
結果は19
ーーー
同じようにB1:F6
B列 C列 D列(空き) E列 F列
1414
4#N/A28
3333
33
6#N/A
14
C列C1は =VLOOKUP(B1,$E$1:$F$3,2,FALSE)と入れてC6まで式を複写したもの。
#N/AはVLOOKUPの該当なしで出ている。
例えばC11に=SUMIF(C1:C6,"<>#N/A",C1:C6)
で結果は14
ーーー
確認したことは、エラーの出ているセルの値は文字列で、見えてるとおりの#N/Aや#DIV/0!という文字列の値になっているということ。
ーー
上例はエラーの種類が1種類だが、2種以上ある場合は
=SUMPRODUCT( )関数で集計できそうに思うたが、
エラーの種類が1種でも
=SUMPRODUCT((A1:A10<>"#DIV/0!")*(A1:A10)) は #DIV/0!になり
1つでもセルに、エラー値があるとうまく行かないようだ。
    • good
    • 0
この回答へのお礼

凄いですね
今、ざっと読みましたがちんぷんかんぷん
お察しの通りエラー値はVLOOKUP関数を使用して出てきた
のですが・・・

=SUMIF(・・・を使用するとは気付きませんでした
簡単な関数でも奥の深さを感じます。

感謝。感謝

お礼日時:2007/07/01 21:13

こんばんは。



エラーが出ないようにする、というのが自然だと思います。

たとえば、このようにしてエラーを回避します。

=IF(ISNA(VLOOKUP(B1,$H$1:$H$20,1,0)),0,VLOOKUP(B1,$H$1:$H$20,1,0))

一般の関数は、エラー値が入ると、再び、エラーを吐き出すように作られています。ワークシートでエラーを出すというのは、初心者の勲章のようなものですが、想定範囲のエラーは駆逐するようにしましょうね。
    • good
    • 0
この回答へのお礼

ISNA・・・でしたか
ISERRORを使って上記のような関数に当てはめていたのですが
全部 ゼロ(0)になってしまい困り果てていました。

感謝いたします。
これで SUM()をスッキリと使用できそうです。

それと、今同じシートで循環参照のメッセージが出ているのですが
緊急に問題としていませんので
別の機会に改めて質問させていただきます。

ありがとうございました。

お礼日時:2007/07/01 21:41

A16: {=SUM(IF(ISNA(A1:A15),0,A1:A15))} (配列数式)

    • good
    • 0
この回答へのお礼

確かに合計がでました。

大変失礼かと思いますが、
なぜこの=ISNA()と配列数式を組み合わせると

合計が出るのか優しく教えて頂けないでしょうか

問題は解決したのですが、どこか引っかかるのです。
お願いいたします。<m(__)m>

お礼日時:2007/07/01 21:54

エラー値を無視して表示させる方法は分からないのですが、


IF文などを使用して エラー値を出さないようにした方が良いのではないでしょうか?
    • good
    • 0
この回答へのお礼

はい
IF文を使用しているのですが今ひとつ、うまくいかないので
困っています。

=ISERROR などを使ったのですが、本来正規の数字が出なければ
いけないところまで、全てゼロ(0)になってしまい
困っています。

お礼日時:2007/07/01 21:46

過去に同じ質問がありましたので紹介します。



http://oshiete1.goo.ne.jp/qa1924224.html
    • good
    • 0
この回答へのお礼

恐らく、過去問があるよ!!。と指摘されるとおもいました(~_~;)
申し訳ございません

SUM関数を配列にしてなぜそうなるのかは未だに理解していませんが
確かに解決いたしました。

ありがとうございました

お礼日時:2007/07/01 21:27

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