列CIには生産量、列DIには目標、列EIには差異%を入力します。私の式は=(D11-C11)/D11
D11
しかし、何かを入力して非C11
表示にするまで、シートのセルを非表示にするにはどうすればよいでしょうか#DIV/0!
。数式を使用してみましたIF
が、間違っているようです。
答え1
IFERROR関数
IF
エラーを処理するためだけに設計された「特別な」テストがあります:
=IFERROR( (D11-C11)/D11, "")
結果がエラーでない限り、(D11-C11)/D11 の計算値が得られます。エラーの場合は空白が返されます。
説明
最後のパラメータである「if error」の値は、空の二重引用符に限定されず、何でもかまいません。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 テストの簡素化された形式です。テストするために式を含める必要はなく、その結果を使用するために再度含める必要もありません。
その他のスプレッドシート
この関数は、他のスプレッドシート プログラムのユーザーも利用できます。LibreOffice Calc のバージョン 4.0 (一部の Linux ディストリビューションではまだ配布バージョンではありません) に追加されました。ただし、@Kroltan が指摘しているように、Google スプレッドシートではさらに合理化されており、「if error」の値はオプションで、存在しない場合はデフォルトで空白になります。したがって、このような場合、潜在的なエラー値を非表示にしたいだけであれば、Google スプレッドシートでは でそれを行うことができますIFERROR(expression)
。
答え2
1時間以内に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
答え3
これを試して:
=IF(D11<>0,(D11-C11)/D11,"")または
=IF(D11=0,"",(D11-C11)/D11)