• ベストアンサー

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

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

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答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

  • エクセルではIF関数なのにアクセスではIIF関数?

    なぜエクセルではIF関数なのにアクセスではIIF関数? IF関数はアクセスではIIF関数になりますが、 なぜ「I」が増えるのでしょうか? またIF関数はイフ関数と読みますが IIF関数は「イイフ」関数と読めばいいのでしょうか? よろしくお願い致します。

  • Accessの「IIF」に相当するSQL関数(ADOでOracleに接続時)

    Access2002からADO経由でOracleに接続し、データを取得しようと 思っています。 AccessのクエリやExcel関数では、「IIF」、「IF」で条件分岐が出 来ますが、SQLでこれに相当する関数はありますか? 具体的には、   ・日付A が 2007/08/01 ~ 本日 の間なら、「手配数」フィー ルドの数字を返す   ・日付Aが それ以外の期間なら、0 を返す というような事をしたいです。 DECODE関数がIF関数と似ているように思いますが、Between~And~ や、不等号での分岐が出来ないようなので困っています。 IIFやIF のように分岐条件を自由に設定できて、入れ子も出来るよ うな関数があれば教えてください。 よろしくお願いいたします!

  • クエリの一つのフィールドのIIF関数の限界は14個ですか?

    アクセス2003のクエリで たくさんの条件があり IIf(テーブル名!フィールド名,"正",IIf(・・・ と言う風に、IIF関数を14個までなら正常に動くのですが 15目になると「式が複雑すぎます」となってしまいます。 IIF関数の限界は14個なのでしょうか?

  • アクセスIIF関数

    はじめまして。ACCESSのif関数について教えてもらいたいことがあります。 dataAの数値に対して、目標数80をこえればその数値分に10を乗算し、未達であれば、0を返すという条件式を行いたいのですが、うまくいきません。以下、自分がやっていたデータを記載します。 テーブル例 dataA 70 80 60 90 クエリ条件式 式1:IIF([dataA]>80,"([dataA]-80)*10","0") 未達については0が返るのですが、超えた場合(真の時)([dataA]-80)*10の式が表示されています。うまく計算させるには、どうしたらよいのでしょうか。ご教授よろしくお願いします。

  • Accessでのiif関数について

    はじめまして。 Microsoft Accessの関数についての質問です。 例えばクエリの「商品名」の値AをBに置き換えたい場合、 =iif([商品名]=A,B)とします。 また、商品番号1000~9999まであるとして、1000~1999を抽出したい場合は、Like "1*" もしくは、Between 1000 And 1999 とします。 この時に 商品番号1000~1999を一律1000と置き換えたい場合、クエリでやるとしたらどのようにすれば良いのでしょうか。 イメージ的には =iif([商品番号]="1*",1000)なのですが、「"1*"」の部分をどうやってもうまくいきません。 どなたか詳しい方いらっしゃいましたらお教え頂けないでしょうか。 お忙しいところ申し訳ございませんが、宜しくお願い致します。

  • Access97のIIf関数について

    Access97のプログラミングで IIf関数について質問です。 sWK=IIf(a=1,IIf(b=1,か,き),い) のようにIIf関数の引数にさらに IIf関数を指定して使うことはできるのでしょうか?

  • アクセスの関数一覧サイトについて

    お世話になります。 以下のようなアクセスの関数のお勧めの関数サイトについて教えてください。よろしくお願いいたします。 ※ 私はエクセルから入ったアクセス初心者ですが、クエリで関数を使いっています。例えばエクセルでは「if」がアクセスでは「iif」等、少し戸惑います。 ※ アクセス関数一覧表と使用例、またできればエクセルの場合ではこの関数を使うがアクセスではこの関数というような対比(例)をしめしたようなお勧めサイトはないでしょうか? 教えてください。よろしくお願いします。

  • クエリの抽出条件でiif関数

    こんにちわ。 いまaccess2000でクエリを作成し, その抽出条件において,iif関数を使って, フォームのあるフィールドに値があるときはその値, ないときはワイルドカードで検索しようと思い, 下記のコーディングを入れました。 iif([Forms]![F_フォーム1].[テキスト1] Is Null, "*", [Forms]![F_フォーム1].[テキスト1]) ところがワイルドカードの"*"がうまく効いてくれないようで 正しく検索されません。 どうすれば正しく検索できるでしょうか? 教えてください。お願いします。

  • ACCELのIIF関数の条件設定方法について

    ACCELのIIF関数で、空白のフィールドを条件に指定する方法を教えてください。 EXCELの場合なら、「=if(A1="",B1,C1)」というようにA1フィールドが空白の時は、B1の値をとるというようにしたいのです。

  • AccessのIIF関数

    Access2000のクエリで、 抽出:IIf(Left([品番],1)=2,Left([品番],4),Left([品番],7))という関数をフィールドに設定しました。 品番 2006aa123は、2006 h2006aa123は、h2006aa と各レコードに入るはずですが、2006aa123はちゃんと2006と入りますが、h2006aa123は、#ERRORになってしまいます。 なぜでしょうか? よろしくお願いします。

ESETの更新手続きについて
このQ&Aのポイント
  • ESETセキュリティソフトウェアシリーズの更新手続きについて知りたいです。
  • ESETの情報更新に関して、個人のメールアドレス変更時の対応方法を教えてください。
  • 登録時のメールアドレスが使用できなくなった場合でも、ESETの更新は可能なのでしょうか。
回答を見る

専門家に質問してみよう