Nz関数の作り方

前回に引き続き、Accessの条件分岐の関数について記載します。

私がIIf関数に続いて仕事上でよく使うのがNz関数です。

Nz関数とは

空欄の時に〇〇に置き換える、という条件分岐の関数です。

条件式:Nz(指定の項目、空欄だった場合〇〇に置き換える)

具体的な作り方

上記のようなデータがあるとします。

5行目の商品名が空欄です。
仮に空欄の場合は商品「VR-412」を販売したことを示している、という社内ルールがあるとします。

つまり、「商品が空欄ならば、”VR-412”と記載する」という条件分岐をしたいのです。

前回やったIIf関数でこの「空欄」はどのように 表現しますか?
答えは「Is Null」です

商品: IIf([売上テーブル.商品] Is Null,”VR-412″,[売上テーブル.商品])

こんな感じの関数になります。

今回紹介するNz関数は平たく言うと、これを短く省略した関数です。

商品: Nz([売上テーブル.商品],”VR-412″)

これで上記のIIfの式と同じ意味になります。
「売上テーブルの商品フィールドが空欄ならば、VR-412と表示する」と言った感じです。

これだけであれば、「IIf関数だけ覚えればいいじゃん、似たようなものをたくさん覚えるのはめんどうくさい!」となりそうですが、Nz関数はこの『短い』ということが真骨頂なのです。

Nz関数のメリット

さっきの売上データを例に挙げます。

これに各社員の役職の情報をくっつけることになりました。くっつける役職は売上を上げた年月時点での役職です。

そして、紐づけたい月の役職データは上記の通り。

「社員名+年月」でユニークになる(データが1対1で紐づけ出来る)とすると、下記のような構成になります。

そして、役職を付与する関数が

役職: Nz([社員マスタ201606.役職],[社員マスタ201612.役職])

意味としては
「社員マスタ201606の役職フィールドを表示する、出来なければ社員マスタ201612の役職フィールドを表示する」と言ったところでしょうか。

つまり、Nz関数は
Nz(A,B,C,D,……)
⇒「Aを表示する、出来なければB、それも出来なければC、それも出来なければD……」という使い方が出来るのです。

仮に、同じ意味のIIf関数を記述すると

役職: IIf([社員マスタ201606].[役職] Is Not Null,[社員マスタ201606].[役職],[社員マスタ201612].[役職])

となります。当然C、D、……と長くなればなるほど、ずっと長くなっていき、訳のわからない難解なものとなっていきます。

ね? Nz関数便利でしょ?
ま、こんな処理しなくても最初から整ったデータが入れば苦労はしないのですが(白目)

最後に注意点。

上記の「出来なければ」=「空欄ならば」の意味になります。

意味を取り違えると(例えば「紐づかない」ではありません)思わぬ落とし穴に嵌る可能性がありますので、ご注意を。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です