• ベストアンサー

excel エラー値を非表示にしたいのですが

こんにちは。アドバイスを宜しくお願いします。 関数を使って数式を入れた表を作成しているのですが 今回は入力しない所が数箇所ありまして入力していない 箇所を参照しているところや関連のシートにまでエラー値が 表示されてしまいます。 こういった、今回に限ってという場合(特定して決めることが出来ないセル) に表示されるエラー値を非表示にする方法があれば教えていただきたいんです。 実際のところできるのでしょうか? エラー値は#N/Aです。 どうか宜しくお願い致します。

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

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

失礼しました。説明不足でした。 まず、ツール→マクロ→Visual Basic Editor でVBE画面に移り、 挿入→標準モジュール で標準モジュールを挿入します。 ANo.#3のマクロをコピーして、コードウインドウ(広い部分)に貼り付けます。 コピーするのはANo.#3の『標準モジュールに貼り付けます。』より下の行全てです。 貼り付けが終わったら、シートに戻り、 ツール→マクロ→マクロで  ErrorHidden を実行するとエラー表示のセルを探して式を変更してエラーを非表示にします。非表示にするのはシート単位としてあります。 ツール→マクロ→マクロで  FormulasFukugen を実行すると、書き換えた算式を元に戻します。

ay1212
質問者

お礼

ありがとうございました。 本当に助かりました。

その他の回答 (4)

  • the845s
  • ベストアンサー率34% (61/176)
回答No.5

結果として必要なのが一枚のシートである場合、 別の個所に結果を移してはいかがでしょう? その際、エラーが出た場合はなにも表示させないようにして…。 =IF(Sheet!A1<>"",Sheet!A1,"") というのをズラーっと必要なところまでコピーする手はいかがでしょう。

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

全ての算式に、If や isNA や isError を付けるのは大変でしょう。 ErrorHidden を実行すると、エラー表示のセルを探して式を変更してエラーを非表示にします。 FormulasFukugen を実行すると、書き換えた算式を元に戻します。 こういう質問だったのでしょうか? ご参考に。 標準モジュールに貼り付けます。 '************************* 'エラーの算式を書き換える '************************* Public Sub ErrorHidden()   Dim rg As Range 'セル   Dim fm As String '算式   'エラーのあるセルを選択する   ActiveSheet.Cells.SpecialCells(xlCellTypeFormulas, xlErrors).Select   For Each rg In Selection     fm = rg.Formula     'エラーを非表示にするユーザー定義関数に書き換える     '元の算式をユーザー定義関数『fncErrorTrp』の引数にしてしまう     rg.Formula = "=fncErrorTrp(" & Mid(fm, 2) & ")"   Next End Sub '************************************** '書き換えたエラーのあった算式を元に戻す '************************************** Public Sub FormulasFukugen()   Dim rg As Range 'セル   Dim fm As String '算式   '算式のあるセルを選択する   ActiveSheet.Cells.SpecialCells(xlCellTypeFormulas).Select   For Each rg In Selection     fm = rg.Formula     'エラーを非表示にするユーザー定義関数が使ってあれば元に戻す     If InStr(fm, "fncErrorTrp(") > 0 Then       fm = Application.Substitute(fm, "fncErrorTrp(", "")       fm = Left(fm, Len(fm) - 1)       rg.Formula = fm     End If   Next End Sub '************************************ 'エラーを非表示にするユーザー定義関数 '************************************ Public Function fncErrorTrp(fm)   If IsError(fm) Then     fncErrorTrp = ""   Else     fncErrorTrp = fm   End If End Function

ay1212
質問者

補足

参考にしたいのですが、内容が私には高度すぎてわからないのです。 まず標準モジュールというのはどこにあるのでしょうか? テンプレートとかのことですか? エラーを非表示にするユーザー定義関数を利用したいと 思っています。できれば作成まで(どこを開いて貼り付けるのか) を簡単でいいので教えて頂きたいのですが。 大変すみませんが宜しくお願いします。

  • Zz_zZ
  • ベストアンサー率44% (756/1695)
回答No.2

>>(特定して決めることが出来ないセル) ... エラー値を非表示にする方法 は無いと思います。(0 を非表示にするのと同じように、#N/A を非表示に は出来ない。)  全ての、計算結果が表示されるセルに、以下の数式を入れなければなり ません。 =if(A1="","",A1*B1)  A1 が ""(ヌル・未入力)の場合は、無表示にし、その他は A1*B1 =if(A1=0,"",B1/A1) =if(A1<>0,B1/A1,"")  A1=0 の場合は、""(ヌル)を表示=非表示(0 での除算を回避) =if(A1="","",(if(A1=0,"",B1/A1)))  A1 が、  ・ "" の場合は ""、  ・ 0 の場合は ""、  ・ その他の場合は、計算式(B1/A1)を実行 など、if 文と、"" (ヌル)を組み合わせる方法など。  

  • peso
  • ベストアンサー率41% (40/97)
回答No.1

=ISERROR(数式,"",数式) これでエラー値は表示されなくなると思います。 数式は今使っていてエラーの出る数式をそのまま入力してください。

関連するQ&A

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

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

  • エクセルのグラフについて教えて!

    エクセルでグラフを作成して、グラフを右クリックして元のデータを表示します。 系列のタブの『値』にグラフに表示される値(参照セル)を入力する訳ですが、そこに数式を入力するのは可能でしょうか? 例えば通常は =Sheet1!$A$1:$N$1 のようにセルの範囲を指定しますが、そこに=Sheet1!($A$1/$A$2):$N$1/$N$2)のように数式を入れてグラフを完成させたいんです。 エクセルのシートで数式を計算し、その範囲を参照するようにしたらいいのですが、今回はその方法は使えないので質問します。

  • VLOOKUPでエラー表示と0表示を無くしたい

    VLOOKUPで下の条件にあった数式を作りたいのですが、うまくいきません。 条件は (1)参照先のセルが数値のため0が表示されるが、0と空白は区別したいので、戻り値が空白の場合は0を表示させない。 (2)参照元のシートには参照先には無いコードがあるので、エラー(#N/A)が出てしまうがエラーも表示させない。 作ってみた数式は =IF(OR(VLOOKUP(B1,入力!$B$1:$C$6,2,FALSE)="",ISERROR(VLOOKUP(B1,入力!$B$1:$C$6,2,FALSE))),"",VLOOKUP(B1,入力!$B$1:$C$6,2,FALSE)) です。 戻り値が空白、またはエラーの時に参照先のセルが空白になるように作ったつもりですが、どうしてもエラー(#N/A)が出てしまいます。 どなたかアドバイスいただければ嬉しいです。 よろしくお願いいたします。

  • エクセルのグラフの値に数式は入るの?

    エクセルでグラフを作成して、グラフを右クリックして元のデータを表示します。 系列のタブのところの値にグラフに表示される値(参照セル)を入力する訳ですが、そこの値に数式を入力するのは可能でしょうか? 通常は =Sheet1!$A$1:$N$1 のように表示しますが、 数式を入れて =Sheet1!($A$1/$A$2):($N$1/$N$2) とできるのでしょうか? ※作成したサンプルはエラーになります

  • EXCELの計算式

    EXCELで表(関数入り)を作成し、それを雛形ファイルにしてコピーし、同じファイルをいくつか作りました。それでコピーファイルをあけて入力しても関数は働かず数字を入力してもセルは0(ゼロ)のままです。シートの上部にある数式が表示される空欄にカーソルを持っていってENTERを押すとそのセルの関数が働きます。 数式は入ってるのになぜでしょうか?ファイルのコピー、シートのコピーと関数は働かないのでしょうか? よろしくお願いします。

  • エクセル エラー?表示

    家計簿を作って入力しているんですが毎回、上書き保存する際に 「このワークシートの数式に、1つまたは複数の無効な参照が含まれています。有効なパス、ブック、範囲名、およびセル参照が数式に含まれていることを確認してください。」 というのが表示されます。 計算式がまちがっているという事なんでしょうか? もし間違っているならどこが間違っているか確認する方法はあるんでしょうか?数式をひとつずつ確認するしかないんでしょうか? エクセル2007 Windowsはビスタです。 宜しくお願いします。

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

    エクセルのシートで、ある行からその上までと違う数式を入れたところ、!マークのエラー表示が出てきて、「このセルにある数式がセル周辺の数式と異なっています」となってしまいます。このようなエラーがいちいち全部のセルに出てきてしまっているのがうっとうしくてたまりません。数式の矛盾に対するエラーは出てきて欲しいのですが、上記のようなエラーを出さないような方法はあるのでしょうか?教えてください。どうぞよろしくお願いします。

  • [EXCEL]数式の計算結果が表示させないエラー

    EXCELのエラーについて質問させてください。 仕事でレジ金の確認と報告をするために金種表をEXCELで作成して使っております。 硬貨の枚数を入力すると金額が計算されて、合計金額も計算されるという簡単な表ですが、 たまに、数量を入力しても結果が表示されないことがあります。 計算結果のセルの数式を確認しても間違いはないので、とりあえず式を入れなおしてみると 正しく表示されます。このエラーの原因はなんでしょうか? 関係あるか不明ですが、入力箇所以外のセルは使用者がいじらないようにシートのロックを かけております。

  • Excelで#N/Aエラーの対策

    Sheet1の表の一部をSheet2に抜粋して表示したくて =IFERROR(INDIRECT(A1),"") と抜粋を表示するSheet2のセル範囲に配列数式として入力しました。 式内の参照先A1には、「Sheet1!A1:E5」「Sheet1!G1:D7」等を示す範囲の名前を記入しています。 画像では「範囲1」となっています。その名前を変更することで、抽出する範囲も変更されます。 「A1:E5」なら5行5列、「G1:D7」なら6行7列のように抽出する範囲の大きさが異なるので 上記の配列数式はその最大の範囲6行7列の大きさに合わせて入力しています。 ここで5行5列分を抽出すると、画像の様に最大範囲に満たない部分に#N/Aエラーが出るため、 その対策として IFERROR関数を使用したわけですが、エラー対策前後で変化がありません。 IFNA関数や、IF関数とISERROR関数のネストでも同様です。IS関数ではエラーかどうかは判別できているようです。 このケースではエラー対策の関数は無効なのでしょうか。 尚、条件付き書式で「エラーなら文字色を背景色に同じ」としてごまかすことはできますが、 その値を別の引数として使用するため、可能なら根本的にエラー対策したいところです。

  • エクセル 関数の数式が表示されてしまう

    WinXP エクセル2003です [シート集計表]のセルE1に ”平成19年9月分 一括集計表” と入力されています。 この ○月 を毎月キーボードで入力、変更させています。 隣に個人配布用の[シート明細票]があります。 [シート集計表]の○月を変更すると [シート明細票]のA1,D1,G1,・・・・が自動的に”平成19年○月分支払書”と表示されるようにと =LEFT('集計表'!$E$1,8)  を作成し セルの書式設定で ユーザー定義 ”@"支払書"”とし 思った通り表示させる事ができていました。 今月分を作成したところ ”平成19年10月支払書 ”と9文字目の 分 が抜けて表示されてしまったので A1に入っているLEFT関数の 8 を 9 に変更したところ セルに 数式自体が表示されてしまいました。↓ ”=LEFT('集計表'!$E$1,9)支払書 ” 数式バーのfxをクリックし 再度関数を作り直してみても 表示させたい文字列ではなく 数式自体が表示されてしまいます。 関数のダイアログボックスの [数式の結果] というところには ちゃんと ”平成19年10月分支払書” と出ているのですが、OKで閉じても そのように表示されません。 変更していない D1 G1・・・は以前のまま 数式の結果がきちんと出ています。 ツール~オプション~数式の表示のチェックは外れています。 [シート集計表]のセルE1の書式設定を標準にしてみたり文字列にしてみたりしても 変化なしでした。 原因と対策を教えて下さい!

専門家に質問してみよう