if文で式を2つ入れるには?

解決


ゆきお  2003-09-29 23:53:44  No: 5051

いつもお世話になっております。
if文で通常は式が1つ入る所に2つ入れたい時の書式で悩んでおります。

a=if(and(NG<>"",KG<>""),1,if(NG<>"",2,if(KG<>"",3,4)))
↑エクセルの場合。

ヘルプを見ながら試行錯誤しましたがだめでした。
どうすれば and(NG<>"",KG<>"") を意味させる事が可能しょうか?
環境は6のパーソナル、XPです。よろしくお願い申し上げます。


にしの  2003-09-30 00:21:27  No: 5052

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が先に評価されるためです。
括弧で優先順位を明示的に指定することにより回避できます。

ヘルプで、「演算子の優先順位」を確認してください。


ゆきお  2003-09-30 01:52:29  No: 5053

にしのさま。ありがとうございました。
>と書けないのはなぜ?というところだと思いますが、違いますか?
その通りでした。
>if (NG <> "") and (KG <> "") then
でうまくいくことができました。詳しくご指導いただきよく分かりました。
どうもありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加