#DIV / 0を非表示にする方法 参照セルが空白のときにエラーが発生しましたか?


27

列CIに生産があります。列DIには目標があります。列EIには分散%があります。私の式は=(D11-C11)/D11

ただし、D11C11を隠すために何かを入れるまで、どのようにセルをシートの下に隠し#DIV/0!ますか。IF数式を使用しようとしましたが、間違っているようです?

回答:


45

IFERROR関数

IFエラーを処理するためだけに設計された「特別な」テストがあります。

=IFERROR( (D11-C11)/D11, "")

これにより、結果がエラーでない限り、(D11-C11)/ D11の計算値が得られます。エラーの場合は、ブランクが返されます。

説明

最後のパラメーターである「エラーの場合」の値は何でもかまいません。空の二重引用符に限定されません。IFERRORは#、次のようなエラー値(で始まるもの)を返すすべての条件で機能します。

#NULL!  -   reference to an intersection of two ranges that don't intersect
#DIV/0! -   attempt to divide by zero
#VALUE! -   variable is the wrong type 
#REF!   -   invalid cell reference
#NAME?  -   formula name, or text within a formula, isn't recognized
#NUM!   -   invalid number
#N/A    -   value is not available

これはデバッグに便利です。関数が一時的に式を囲むと、式がエラーを生成したときにメッセージテキストを返すことができます。また、IFテストの合理化された形式です。テストするために式を含める必要はなく、結果を使用するために再度含める必要はありません。

その他のスプレッドシート

この機能は、他のスプレッドシートプログラムのユーザーも利用できます。バージョン4.0でLibreOffice Calcに追加されました(一部のLinuxディストリビューションではまだ分散バージョンではありません)。ただし、@ Kroltanが指摘しているように、Googleスプレッドシートではさらに合理化されており、「ifエラー」の値はオプションです。欠落している場合は、デフォルトでブランクになります。そのため、潜在的なエラー値を非表示にしたいだけの場合、Googleスプレッドシートではそれを行うことができますIFERROR(expression)


これがExcel向けであることは知っていますが、Google DocsとOpen / LibreOfficeには、「trueの場合の値」を必要としないバリエーションがあり、それをに単純化し=IFERROR(yourformula)ます。
-Kroltan

1
@Kroltan:この機能をこれ以上合理化できないと思ったとき。Googleスプレッドシートについては正しいと思われます。そのIFERRORは、代替値が指定されていない場合、エラー時にデフォルトでブランクになるため、オプションです。LibreOffice Calcはバージョン4.0でこの機能を実装しました。私がアクセスできる最新バージョンは4.2であり、その点でif-error値が必要です。
fixer1234

実際、Googleスプレッドシートでしかテストしていませんでしたが、ドキュメントによると、LibreOfficeのものと同じです。誤報して申し訳ありません。
クロルタン

11

IFステートメント内には論理チェック(最初の部分)があります。

IF(logical_test, value_if_true, [value_if_false])

あなたの生産および/または目標データが空白の間、発生するエラーを回避するには、使用ORしてISBLANK論理チェック内の関数。

=IF(OR(ISBLANK(C11),ISBLANK(D11)), "", (D11-C11)/D11)

これにより、参照されているセルが空白かどうかがチェックされます。一方または両方が空白の場合(論理テストをTRUEにする)、ステートメントのIF TRUE一部を処理しIFます。この場合、""は何もしないように式に伝えます。そうでなければ、それはIF FALSEあなたが持っている式である式の部分を処理します。


私は、両方のチェックを含めるには、この更新C11D11あなたはもともと投稿として。申し訳ありませんが、元の回答でそれを見逃しました。
チャーリーRB

良いキャッチ。目標が事前に入力されてから生産エントリを待つ場合、結果は入力されるまで100%の差異を示します。ソリューションがそれを処理します。パフォーマンスがこのシートで測定されている場合、圧力ははるかに小さくなります。:-)
fixer1234

1

これを試して:

= IF(D11 <> 0、(D11-C11)/ D11、 "")
または
= IF(D11 = 0、 ""、(D11-C11)/ D11)


1

スプレッドシート全体を選択し、メニューの下にホーム - 条件付き書式 - 新しいルール... -選択含まれていフォーマットのみセルの下- 書式付きセルのみ選択エラー -クリックしてフォーマットを...ボタン-に行くフォント ]タブ-の下でを選択背景と同じフォント色(白など)。

新しいルールダイアログ

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.