条件分岐⑥ 逆転の条件式

NOT関数とIF関数を組み合わせて使えます。

いつもと逆

NOT関数

NOT関数は「~ではない」を表していて、条件式が成立していれば不成立、条件式が不成立なら成立となります。

書式

 if(NOT(条件式1 ) , 選択肢1 , 選択肢2)
※NOTは大文字小文字どちらでもOK

えっと・・

条件が逆転するだけなら、選択肢を逆にすればいいんじゃないの?

確かにそうなんですっ!

”パラメータ「W」が500ならば定数「300」、500以外なら定数「600」”をif文で表すと
 if(W=500, 300 , 600)となります。

この構文にNOT関数を加えると
 if(NOT(W=500), 300 , 600)となります。

NOTを加えたことで意味が変わり、
”パラメータ「W」が500(ならば➡)でないなら定数「300」、それ以外なら「600」”という意味になります。

つまり”500と同じでないなら”を言い換えれば”500以外全て”になるので
”パラメータ「W」は500でないなら定数「300」、500なら定数「600」”となります。

となるとNOTを使わずに選択肢1と選択肢2を入れ替えてしまって」
if(W=500, 600 , 300)とすれば
”パラメータ「W」は500なら定数「600」、500でないなら定数「300」”となります。
 if(NOT(W=500), 300 , 600)と同じ意味になります。

やりたい事は同じですが複雑にならずに、日本語で考えた時にスムーズに考えられる方で入力してください。

いったん整理

if(NOT(条件式), 選択肢1 , 選択肢2)の場合
・条件式が成立していたら→NOTにより成立は不成立となる→選択肢2が選ばれる
条件式が成立していないなら→NOTにより不成立は成立となる→選択肢1が選ばれる


・・・

重要なルール

①IF関数と組み合わせて使うが、AND関数やOR関数も一緒に使う事ができる。
②NOT関数は条件式を「~ではないなら」と読み替えることができる。

例えば。。。

その1
「W」と「H」の関係が”「W」が500より小さくないなら「H」は600、それ以外なら700となる”となっている場合の式は以下になります。

 if(NOT(W<500 ) , 600 , 700)

Wの値が400だと提示された条件の(W<500)は成立
→NOTにより成立は不成立となる
→条件をクリアしていないと判定
それ以外(選択肢2)の方が選択される
→Hの値として700が表示される


その2 選択肢を入れ替えてみる 
一方にはNOT関数を入力し、もう一方はNOT関数を入力せずに選択肢1と選択肢2を入れ替えた式をそれぞれ「H」と「H’」に設定しています。
 if(NOT(W<500 ) , 600 , 700)
 if(W<500   , 700, 600)


どちらも値は700で同じ結果になる。


その3 AND関数と組み合わせる 保留
「W」と「D」と「H」の関係が”「W」が500より小さくてなおかつ「Ⅾ」が500よりも小さいくないな「H」は600、それ以外なら700となる”となっている場合の式は以下になります。

 if(NOT(AND(W<500 , D<500 )) , 600 , 700)

Wの値が1000、Dの値が400ならば
提示された条件に対しW<500は不成立、D<500は成立
→条件式の一部が不成立だとAND関数は不成立となる
→NOTにより不成立は成立となる
→条件をクリアしている判定され
→選択肢1の方が選択される
→Hの値として600が表示される


その4 OR関数と組み合わせる
「W」と「D」と「H」の関係が”「W」が500より小さくてなおかつ「Ⅾ」が500よりも小さいなら「H」は600、それ以外なら700となる”となっている場合の式は以下になります。

 if(AND(W<500 , D<500 ) , 600 , 700)

Wの値が1000、Dの値が400ならば
提示された条件に対しW<500は不成立、D<500は成立
→条件式の一部が成立だとOR関数は成立となる
→NOTにより成立は不成立となる
→条件をクリアしていないと判定され
→選択肢2の方が選択される
→Hの値として700が表示される





なんだか見た目がゴチャゴチャしてしまいました( ;∀;)

Revit2020