• ベストアンサー

IF関数ではなくIIF関数を使うのでしょうか?

なぜアクセスのクエリでIF関数を使う時は エクセルのようにIF関数ではなくIIF関数を使うのでしょうか? アクセスのクエリで条件分岐をしたいときはIIFを使っています。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

過去に同じような質問があります。 http://okwave.jp/qa/q7020090.html エクセルワークシート関数にはIIFが無いようだ。 エクセル(表計算ソフ)の関数の発祥が古いからだろう(約30年前発祥?)。 将来作られないとも限らないと思う。 旧(当初)のBasicでは、IF邪だけで、IIFはなかったと思うが、 Excelでも現在VBAではIIF関数が使えます。 http://officetanaka.net/excel/vba/function/IIf.htm アクセスなどで、デザイン・グリッドで1行に入れなければならないときには、 Basicでコードを書くように IF THEN ELSE ENDIF のように複数行に分けて入力できないからではないか。 エクセルVBAなどでは Sub test01() If Range("A1") = 1 Then Range("B1") = "A" Else Range("B1") = "B" End Sub (と1行でも済ますこと)ができるが、全体コードが長くなる。IIF関数が使えれば 短く表現で来て、慣れれば直感的に、しようとしていることがわかる。 Sub test02() Range("B1") = IIf(Range("A1") = 1, "A", "B") End Sub ーー http://www.tsware.jp/labo/labo_37.htm の解説も見ておいてください。 他言語の場合も興味があれば、調べてみると面白いかと。

wtsxfcur
質問者

お礼

ご回答ありがとうございます。

その他の回答 (1)

noname#212067
noname#212067
回答No.1

>なぜアクセスのクエリでIF関数を使う時は エクセルのようにIF関数ではなくIIF関数を使うのでしょうか? エクセルのIF関数はワークシート関数なので、ワークシートでしか使用できません エクセルやアクセスにはVBA関数で共通して使えるIIF関数があります また、エクセルやアクセスでしか使えないVBA関数もあります アクセスだとデータベース関数DSUM、DLOOKUPなど よくクエリの中にIIF関数を使用する初心者が多いですが他の人が見て解りにくかったり 処理速度が遅くなるので上級者は使用しません

wtsxfcur
質問者

お礼

ご回答ありがとうございます。

関連するQ&A

専門家に質問してみよう