IIf 関数を使って値を表示または計算する

重要:  この記事は機械翻訳されています。機械翻訳についての「免責事項」をお読みください。この記事の英語版を参照するには、ここをクリックしてください。

IIf 関数には、次のような構文があります。

IIf(論理テスト, true の場合の値, false の場合の値)

たとえば、フォームのテキスト ボックス内で消費税を計算するには、テキスト ボックスの [コントロール ソース] プロパティに次のようなを入力します。

=IIf([StateProvince] = “WA”,[OrderTotal] * 0.095, 0)

意味: StateProvince フィールドに "WA" という値が入っている場合は、OrderTotal に 0.095 を掛けて消費税を計算します。それ以外の場合は、0 を返します。

ネストした IIf

IIf 関数の使い方がわかったら、これをネストして使えるととても便利です。"ネスト" とは、1 つの IIf 関数を別の IIf 関数の中で使うことです。"true の場合の値" か "false の場合の値" (あるいはその両方) に値として入力します。たとえば、期限が過ぎている項目には、レポートの [ステータス] 列に "期限超過" と表示するとします。また、[期限] が今日の場合は、"期限当日" と表示するものとします。期限になっていなければ、[ステータス] 列は空のままにします。今日の日付が 2012 年 2 月 9 日だったとすると、次のような表示にしたいものとします。

IIF 関数を使ってメッセージを表示する [ステータス] 列を持つタスク レポート。

これは、IIf 関数を 2 つ使い、1 つは他方の "false の場合の値" としてネストすることで実現できます。

= IIf (式 < 日付 ()、「期日」, IIf (式 (日付) =「今日が期限」))

外側の IIf は、DueDate フィールドと現在の日付 (Date() 関数によって返される) を比較します。上に示した最初の 2 つのタスクについては、期限が今日よりも前に来てしまっているため、外側の IIf の論理テストの結果が true になり、"期限超過" と表示されます。3 つ目のタスク (ガレージのペンキ塗り) については、外側の IIF の結果が false になるため、ネストされた IIf 関数は、期限が今日の日付と等しいかどうかを調べます。等しい場合は、ネストされた IIf 関数が "期限当日" と表示します。4 つ目のタスク (植木の手入れ) では、どちらの IIf 関数も true にならず、ネストされた IIf の "false の場合の値" の引数は指定されていないため、何も表示されません。この場合に何か表示されるようにする場合は、引数を追加することができます。

ヒント

IIf 関数をネストする楽しいは通常したくない高度なまたは 1 つ以上の 2 つのレベルに移動します。式では、簡単に読み取りおよび保守にくくなります。Switch 関数、同様の提供の使用を検討する場合は、ネストした Iif は手を取得して、"if – ["ロジックの種類。

ページの先頭へ

注: 機械翻訳についての免責事項: この記事の翻訳はコンピューター システムによって行われており、人間の手は加えられていません。マイクロソフトでは、英語を話さないユーザーがマイクロソフトの製品、サービス、テクノロジに関するコンテンツを理解するのに役立てるため、こうした機械翻訳を提供しています。記事は機械翻訳されているため、用語、構文、文法などに誤りがある場合があります。

スキルを磨く
トレーニングの探索
新機能を最初に入手
Office Insider に参加する

この情報は役に立ちましたか?

ご意見をいただきありがとうございます。

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×