Excelのif
関数は、条件、if-true値、およびif-false値の3つの引数を取ります。Excelは3つの引数すべての値を計算しますか、それとも条件の値と対応する結果のみを計算しますか?
明確化:結果がどうなるか疑問に思ってif
いません。関数の結果を計算する前に、すべての引数の値を計算するかどうか疑問に思っています。
if
これは、関数が遅延評価または厳密評価を使用するかどうかを尋ねるのと同じです。たとえば、次の擬似コード:
x = 5;
print x>2 ? "Bigger" : "Smaller" + 1/0
1/0
演算子に結果が必要ない場合でも、を評価するため、完全に厳密な評価を行う言語ではゼロ除算例外がスローされ?:
ます。
遅延評価言語では、?:
演算子は、評価x>2
する式を決定する前に評価します。
問題は、Excelで、式に存在する可能1/0
性のある正当な値(たまたま)を生成することです。#DIV/0!
したがって、単に呼び出すだけで=if(true,1,1/0)
は、Excelが評価しているかどうかはわかり1/0
ません。