web-dev-qa-db-ja.com

IF関数-数式の繰り返しを避ける方法はありますか

これがわからないなんて信じられませんが、論理テストがそれに依存している場合に、ifステートメントで式を繰り返さないようにする方法はありますか?

つまり.

= IF((SUMIFS式)= 0、 ""、SUMIFs式

誤ったシナリオでのSUMIFS関数を、最初にテストした式をプログラムで繰り返すように指示する短いものに置き換えたいと思います。式を2回繰り返すと、処理速度に悪影響を与える必要があります。無視できるかもしれませんが、ここでベストプラクティスに行きたいです。ありがとう。

24
Lorenzo

Nameを数式に割り当てて、Nameを使用できます。 ............見る:

式に名前を割り当てる

関連抜粋-

たとえば、=SUM(A1:A100)-SUM(B1:B100)のような式を頻繁に使用するとします。これは_A101_にあり、行101の多くの列にコピーされます。この場合、行101の各セルでこれを行うカスタム数式

1)セルA101を選択します(これは重要です)。

2)[挿入]> [名前]> [定義]に移動し、[ワークブックの名前]ボックスに「SalesLessCosts」と入力します。

3)[参照先]ボックスをクリックして、「=SUM(A1:A100)-SUM(B1:B100)」と入力し、[追加]をクリックします。

これで、セルA101の数式を_=SalesLessCosts_に置き換えることができます。これを行101全体にコピーすると、式=SUM(A1:A100)-SUM(B1:B100)と同じように、相対参照が変更されます。これを行う理由は、「挿入」>「名前」>「定義」に進む前にA101を選択し、「[参照先]」ボックスに追加したときに=SUM(A1:A100)-SUM(B1:B100)で相対参照を使用したという事実にあります。

9
Gary's Student

_#DIV/0!_のようなエラーを強制し、次にIFERRORを使用できます。

=IFERROR(1/(1/SUMIFS_formula),"")

29
barry houdini

ゼロを非表示にするだけの場合は、簡単な方法があります。

  • ゼロを非表示にするすべてのセルを選択します
  • カスタム数値フォーマットに入る
  • 形式を「一般;一般」に設定します。

カスタムの書式設定は、[正の数]; [負の数]; [ゼロ]の構造になっています。最後の部分を空白にすると、実質的にゼロを非表示にして、それ以外はすべて表示します。

条件付き書式の利点は、これを任意の背景で使用できることです。

私が時々使用するきちんとしたトリックは、「;;;」のカスタム形式を使用してセル値を完全に隠すことです。このようにして、条件付き書式のようにセル内に画像を配置し、値をまったく表示しないようにすることができます。

次のようにSUBSTITUTE関数を使用してみてください。

=SUBSTITUTE( VLOOKUP( H4; $D$5:$E$8; 2; 0 ); $H$1; $I$1 )

次に例を示します。

Example

ここで、2回繰り返したくない式はVLOOKUP関数です。 VLOOKUPの結果は、別のテーブルにある文字列です(例: "Green")。

その文字列が$H$1(ここでは「黄色」)の特定の文字列値と一致するかどうかを確認したいと思います。

  • 存在する場合、SUBSTITUTEはそれを$I$1(必要なエラー文字列。ここでは「FORBIDDEN」)に置き換えます。
  • そうでない場合は、VLOOKUP結果文字列( "Green"などの通常の承認済み出力)を表示します。

実際の式は非常に長いため、これは私にとって便利です。2回書きたくありません。また、2つの異なるセルを使用したくありません。これは、この数式を既に10列に適用しているためです。つまり、10列を追加して機能させる必要があります。

2
Mo Ja

実際、Excel 2007以降、IFERRORステートメントはOPが要求したとおりに正確に実行します。ヘルプファイルから:

説明:式がエラーと評価された場合に指定した値を返します。 それ以外の場合は、式の結果を返します。 [イタリック鉱山]

構文:IFERROR(value, value_if_error)

2
Sound Of Mind

いくつかのシナリオでは、MAX()またはMIN()は素晴らしい仕事をすることができます。

例:このようなもの:

=IF(SUMIFSformula>0,SUMIFSformula, 0)

これに短縮できます:

=MAX(0,SUMIFSformula)

1
Vityata

ここにハックがあります-表示された値だけに関心があるのか​​、別の数式で値を使用する必要があるのか​​によって異なります。

SUMIF数式をセルに入れます(IF部分なし)

セルの値が0の場合にフォントの色を背景色に設定する条件付き書式ルールを作成します

そして、ちょっとプレスト、あなたは望ましい結果を得ます。

私が言ったように-それはハックですが、二重評価を防ぎます。

私が知っている「クリーン」な解決策はありません。

0
Floris