• ベストアンサー

Excelでエラーが出ない方法

SUM(A1,A4,A7,A10,A13) こういうような数式をA20に入れたとします。 そのときにA10のセルを削除すると「#REF!」とひょうじされますが、これを表示させずにA10をなしにして計算してくれる方法を教えてください。 よろしくお願いします。

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

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.8

質問にあることを実現するには、 =SUM(A1,A4,A7,A10,A13) の代わりに、 =SUM(IF(ISERROR(A1),0,A1),IF(ISERROR(A4),0,A4),IF(ISERROR(A7),0,A7),    IF(ISERROR(A10),0,A10),IF(ISERROR(A13),0,A13))        (1行です。長くなるので2行で書いています) とすれば、計算可能です。 この算式でA10のセルを削除しても、A13セルはA12に自動的に変更され、正しい値がでます。 しかし、A10セルが削除されたのは事実で、回答の算式内のA10部分は『#REF!』になります。 式の一部は『#REF!』になるが、式全体では計算できるということです。 計算は可能ですが、この状態のままにしておくのは何か安心できませんが・・・ しかし、上の式は入力が面倒なので、同じ機能のユーザファンクションを作ってみました。 標準モジュールに貼り付け、  =Sum_NotRef(A1,A4,A7,A10,A13)  =Sum_NotRef(A17,A10,A1,B1:C3) のようにして使います。 引数のセルを削除すると、そのセルが『#REF!』になりますが他のセルを使っての計算は行います。 Function Sum_NotRef(ParamArray rg() As Variant)   Dim ct As Integer  '// カウンタ   Dim v As Double   '// セルの値   Dim TTL As Double  '// 有効なセルのみの合計値   If UBound(rg) = -1 Then     '// セルを指定していなかったら答えはゼロ   Else     '// 最低、1個のセルを指定していた場合     On Error Resume Next     '// 関数の引数がエラーでないセルを合計する     For ct = LBound(rg) To UBound(rg)       v = Application.Sum(rg(ct))       TTL = TTL + v: v = 0     Next   End If   Sum_NotRef = TTL End Function

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (7)

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

可能回答が出ると無知を曝しますが、本件不可能でしょう。 A10を参照とか関数式に記述している場合、A10が削除されると、殆どの場合、加工参照対象を失って#REFになります。 唯一(?)の例外が=SUM(A1:A10)等の場合A10を削除しても=SUM(A1:A9)になってくれます。 =SUM(A9:A11)などの場合はA10は途中であって、記述されてない時も削除しても=SUM(A9:A10)になってくれます。 =SUM(A1,A4,A7,A10,A13)をその形に持って行けないか 考えましたが、不可能なようです。 A10が削除される(A10しか削除されない)のがわかっているなら =A1+A4+A7+SUM(A9:A10)-A9+A13 とかすれば、1回の削除には耐えられそうです。

全文を見る
すると、全ての回答が全文表示されます。
noname#9284
noname#9284
回答No.6

再々失礼いたします。 > 例のやつは2つおきになってますが実際のほ不規則になってます。 そういうご事情でしたら私もANo.#3さんの方法しか思いつきません・・・。 ここでご質問を切り分けたいのですが、 1. 削除しても常にA1、A4、A7・・・といった「位置が固定の」セルを足し算されたいのでしたらINDIRECRが有効です。 A10を削除されればA13はA12になり、計算の範囲から外れます。 2. しかし、例えばA10を削除しますとA13がA12となるわけで、計算式は自動的にSUM(A1,A4,A7,A12)になります。 結果的にSUM(A1,A4,A7,A12) をされたいのでしたら、最初はSUM(A1,A4,A7,A10,A13) このように入力されるのが一番無難と思います。 この場合の入力方法ですが、 数式バーに「=SUM()」と入力するかΣボタンを押されるかし、 Ctrlキーを押しながら必要なセルをクリックして行って、 最後にEnterキーを押します。 この方法ですと、手で入力される時間の1/10で済みそうです。

全文を見る
すると、全ての回答が全文表示されます。
noname#9284
noname#9284
回答No.5

ANo.#1とANo.#2です。 先ほどは失礼いたしました。 =SUMPRODUCT((MOD(ROW(INDIRECT("A1:A13")),3)=1)*1,INDIRECT("A1:A13")) この数式ですと、セルを削除してもエラーにはなりません。 ただしどんどん削除してA20に入力したこの数式が上に上にと上がって行くとしたら A14までにして下さい。

taws
質問者

補足

質問の仕方が悪かったみたいです。 例のやつは2つおきになってますが実際のほ不規則になってます。 よろしくお願いします。

全文を見る
すると、全ての回答が全文表示されます。
  • 12m24
  • ベストアンサー率23% (193/817)
回答No.4

 質問のままでは相対参照の状態になっているので、A20からA10にコピーさせると、もとのA1,A4,A7の行番号がマイナスになってしまうので、#REFエラーを吐き出すことになります。  これを解決するには、絶対参照にします。  絶対参照にするには、変化させたくない要素の頭に「$」をつけます。こうすれば、セルをコピーしても、参照先が変わることがありません。  ただし、この場合A10にコピーすると、循環参照となってしまうので、セルがA10の時には0を足すようにする必要があります。

全文を見る
すると、全ての回答が全文表示されます。
  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.3

> A10のセルを削除すると [編集]-[削除]した場合に、式自体が =SUM(A1,A4,A7,#REF,A12) となる状況ですね。 =SUM(INDIRECT("A1"),INDIRECT("A4"),INDIRECT("A7"),INDIRECT("A10"),INDIRECT("A13")) の式ではどうでしょう? #別の良い方法がある気もしますので、締め切りは少し待った方が良いかも。

全文を見る
すると、全ての回答が全文表示されます。
noname#9284
noname#9284
回答No.2

すみません、 =SUMPRODUCT((MOD(ROW(A1:A13),3)=1)*1,A1:A13) これは間違いでした。

全文を見る
すると、全ての回答が全文表示されます。
noname#9284
noname#9284
回答No.1

=IF(ISERROR(SUM(A1,A4,A7,A10,A13)),"",SUM(A1,A4,A7,A10,A13)) でいいと思います。 ただ、下記のようにしますと、どんなにセルを削除しても常にA1:A13の範囲で2行おきに足し算をしてくれます。 エラーにはなりませんので、ISERROR関数は必要ではありません。 =SUMPRODUCT((MOD(ROW(A1:A13),3)=1)*1,A1:A13)

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excelについて教えてください。

    A9にSUM(A2:A8) という数式を使ったとします。 ここからA2~A8のセルを削除すると結果が「#REF」とでます。 こうゆうような表示が出ない方法または、出た場合にA9を削除するような関数・マクロがあれば教えてください。 よろしくお願いします。

  • Excel、数式の数値を数字(固定)に変える方法を教えてください。

    Excelの数式を、数式ではなく、ただの数字にすることができますか? 例)セルA6に次のような数式が入っていたとします。  A6=SUM(A1:A5) 但し(A1~A5までの計は5とする)  セルA6の表示は「5」になっています。  これをA6のセルだけコピーして別のファイルに貼り付けると  「5」ではなくエラー(#REF!)になってしまいますよね。  これを防ぐために、セルA6を「SUM(A1:A5)」でなく  単なる「5」に変換したいのです。 よろしくお願いします。

  • エクセルのエラー非表示について

    ちょっと説明しにくいのですが聞いてください。 シート1に参照元の値があり、シート2に数式があります。さらにシート2の数式での値をVLOOKでシート1に読み込ませています。最終的に印刷するものはシート1です。 シート1でいらないページを行ごと削除すると。シート2では参照元が削除されたので数式内で『#REF!』のエラー表示があり、当然セル上にも『#REF!』のエラーが表示されます。 このエラー表示をゼロもしくは表示しないようにしたいのですがどのようにすればいいでしょうか。一般的には、『ISERROR』関数を使用するんでしょうけど、数式の中に『#REF』があるためかどうかはわかりませんが、『この関数に対して、多すぎる引数が入力されています。』という警告が表示され、できません。どなたかこの解決方法を教えてください。 ちなみにエラーの文字を白くとかはダメで、完全に0などのほかの数値か表示なし””がいいです。

  • Excelエラー表示を常に外したい

    たとえば =SUM(A1:A5) という式を設定し、実際に合計を出すと必ず 「数式は隣接したセルを利用していません」 というエラー表示が出ます。 大変なデータ量ですので、いちいち「エラーを無視する」で外していられませんので、根本的な解決方法を教えてください。 またなぜ隣接したセル同士で計算させているのにこのようなエラーがでるのでしょう? セルの書式設定ではユーザー定義で「#,##0"円"」と設定していますがこれがいけないのでしょうか?

  • 計算対象セルを削除しても計算結果を提示する方法は?

    たとえば、A1セルに「1000円」という文字列が入っているとします。これに対しB1セルで「=ROUNDDOWN(D11*108%,0)」などの関数または他の数式を入れた場合、A1セルを削除すると、「#REF!」という「セル範囲が無効のエラー」がでてしまいます。 「計算方法の設定」の「手動」を試してみたところ、エラーとはなりませんでしたが、なぜか保存すると「#REF!」というエラーがでます。 A1セルを削除しても、計算結果をそのまま提示する方法はないのでしょうか?もしもありましたら教えてください。

  • エクセル 数式

    Excelについて。 あるセルA1の設定されている数式(=SUM(E:E)など)を、 B1にコピーする方法は、ありますでしょうか? ※A1に入力されている数式をコピー貼り付けではない方法を探しています。 B1に、=A1とすると、=SUM(E:E)の計算結果が入力されてしまいます。 ゴール(表示される値)は同じですが。コピー貼り付けしか方法はないでしょうか。 お手数ですが、よろしくお願いします。 エクセル2007以上 VBAなら可能ですか?

  • 配列数式を用いたエクセルマクロの使い方

    セルA1に「=SUM((A1:A12=5)*(B1:B12=""A"")*C1:C12)」という風に数式を表示形式を文字列として入れておき、他のセルに、この計算結果を入れるたいのですが、マクロでどのようにすればいいか、ご存知のかたがいらっしゃいましたら教えてください。 ちなみに、使用したい数式(セルA1に入れているもの)は配列数式です。

  • エクセル セルの呼び方について教えてください

    初心者です。 普通、エクセルのセルは、A1、B1 C1、A2、B2・・・・で表示されてますよね。数式も=SUM(A1:C3)というようになります。 仕事で、他の人が作ったエクセルシートを作業しようとしたら、 セルの表示が、A1とかではなくて、RC○○○、とかになっているのです。 計算式もセル名が長くって、よくわからないのです。 これを普通のA1、B1とかに表示するにはどうしたらよいでしょうか?

  • エクセル CONCATENATE関数

    エクセル2003のCONCATENATE関数で作ったテキストを関数化(数式化)できないでしょうか。 たとえば、C3のセルに下のCONCATENATE関数を入れ =CONCATENATE(D3,E3,F3) 文字列"=sum(A1:A10)" を表示させ、 その後CONCATENATE関数をのぞき、=sum(A1:A10)を計算させたいのです。 CONCATENATE関数で合成されたセルをコピーし、形式を選択して貼り付けから値だけを貼り付けても、なぜかうまくいきません。 =sum(A1:A10)とC3に表示され、計算は実行されません。

  • エクセルで

    エクセルについてお伺いします。例えばセルA1に10%、A2に20%のパーセンテージで入力された値は合計は出せないのでしょうか。SUM関数で出すとエラーが出てしまいます。それと、数式を入力したセルの数値の値の合計も出ないのでしょうか。例えばあるセルに=A1+B1,もう一方のセルにA2+B2と入力されていてそれぞれ数値が5と4とします。合計9を出したいのですが、数式のためSUM関数では合計できません。何か方法はありますか。

このQ&Aのポイント
  • 高層マンション管理組合長の権限について詳しく教えてください。
  • 現在の管理組合の体制に問題はないのでしょうか?
  • マンション管理適正化法にも問題はないのでしょうか?
回答を見る

専門家に質問してみよう