11/04/2023

Access。クエリ。計算したくてもNull値だとすることができないので、どうしたらいい【Nz】

Access。クエリ。計算したくてもNull値だとすることができないので、どうしたらいい

<Access:Nz関数>

Excelでは、空白セルを「0」として計算をしてくれます。


ところが、Accessは、単純な四則演算ですら、計算をしてくれません。


例えば、予約数からキャンセル数を減算して、参加者数をAccessで算出する場合、データが入力されていないと、空白のままで、計算結果を表示してくれません。

Nz関数


T予約状況の3件目。キャンセル数フィールドは空欄(Null値)になっています。

2件目は、「0」と入力されています。


Q参加者数というクエリをつくって、参加数という演算フィールドをつくります。

参加数: [予約数]-[キャンセル数]


データシートビューで表示してみると、2件目は、30と表示されているのに、3件目は、空白で参加数が表示されていることがわかります。


Accessは、データが無い。

Nullだと、計算をしてくれません。

空白に0を自力で入力するとしても、データ件数が多ければ対応することは厳しい。


そこで、Nz関数をつかうことで、対応することができます。

参加数: [予約数]-[キャンセル数]

を次のように修正します。


参加数: [予約数]-Nz([キャンセル数],0)


 これで、データが空欄(Null値)の場合でも、算出することができます。


Nz([キャンセル数],0) について説明します。

Nz関数は、データが空欄だった場合、どうするのかという処理をしてくれます。


キャンセル数フィールドの値が空欄=Null値ならば、「0」とするという処理をしてくれます。


これにより、算出することができたというわけです。


IIF関数とかつかうイメージがしますが、Accessには、Nz関数というのもあります。