いつもお世話になっております。
if文で通常は式が1つ入る所に2つ入れたい時の書式で悩んでおります。
a=if(and(NG<>"",KG<>""),1,if(NG<>"",2,if(KG<>"",3,4)))
↑エクセルの場合。
ヘルプを見ながら試行錯誤しましたがだめでした。
どうすれば and(NG<>"",KG<>"") を意味させる事が可能しょうか?
環境は6のパーソナル、XPです。よろしくお願い申し上げます。
Excelでは、andなどの条件式が関数としてありますが、Delphiの場合、通常は演算子を使います。
and(NG<>"",KG<>"")
の場合でしたら、
if (NG <> "") and (KG <> "") then
となります。
たぶん、悩みどころは、
if NG <> "" then
begin
if KG <> "" then
・・・
と書けるのなら、
if NG <> "" and KG <> "" then
と書けないのはなぜ?というところだと思いますが、違いますか?
if NG <> "" and KG <> "" then
と書けないのは、演算子の優先順位により、"" and KGが先に評価されるためです。
括弧で優先順位を明示的に指定することにより回避できます。
ヘルプで、「演算子の優先順位」を確認してください。
にしのさま。ありがとうございました。
>と書けないのはなぜ?というところだと思いますが、違いますか?
その通りでした。
>if (NG <> "") and (KG <> "") then
でうまくいくことができました。詳しくご指導いただきよく分かりました。
どうもありがとうございました。
ツイート | ![]() |