dポイントプレゼントキャンペーン実施中!

レポートでグループ化したフッターに平均を求めるためにAvg関数で
平均を求めようとしたのですが、オーバーフローやデータ型の不一致が
発生してしまい平均を求めることが出来ません。
(Access2003)
クエリでの計算時に#エラーが発生しているのと平均する内容にNULL値が含まれるのが原因だと思いますが、
どのような対処をすればよいでしょうか?
#エラーに関しては0/0が原因だと思うので計算対象の0をNULLにすればよいですが
NULLだとデータ型の不一致が発生してしまうのですかね?

平均する内容はレコードすべてがNULLの場合や#エラーが含まれる場合があります。

A 回答 (2件)

tab1:



ID__区分__値
01_____1__\100
02_____1__\200
03_____1

[イミディエイト]
? DBAvg("値", "tab1", "区分=1")
150
? DBAvg("Nz(値)", "tab1", "区分=1")
100

ですから、通常はエラーではなく150と異なった平均値で表示されると思いますが・・・。
実際、レポートウィザードで[区分フッター]に平均を生成すると、

=Avg([値])

となり 150 と表示されます。

=Avg(Nz([値]))

で 100 と正しく表示されます。

>オーバーフローやデータ型の不一致が発生してしまい平均を求めることが出来ません。

となると、起きている現象が今一つ推測しかねます。
    • good
    • 0
この回答へのお礼

ありがとうございます。
オーバーフロー及びデータ型の不一致に関しては自己解決しました。

データ型の不一致に関しては♯エラーが文字として扱われているためと
実際にデータ型が間違っている箇所もありました。

オーバーフローに関しては♯エラーをNULL値に置き換えることによって
解消されました。

お礼日時:2008/03/31 17:32

>クエリでの計算時に#エラーが発生しているのと


>平均する内容にNULL値が含まれるのが原因だと思いますが、
エラーは中身を見ないとなんともいえませんが
Nullは関係ありません。集計関数はNullを除いて集計してくれます

>平均する内容はレコードすべてがNULLの場合や#エラーが含まれる場合があります。
全てがNullの場合はNullになります
エラーがある場合はエラーになります
エラーは出なくなるようにするしかないですね
    • good
    • 0
この回答へのお礼

ありがとうございます。
オーバーフロー及びデータ型の不一致に関しては自己解決しました。

集計関数はNull値を無視するのですか、知りませんでした。

オーバーフローに関しては♯エラーをNULL値にしたところ
解消されました。

お礼日時:2008/03/31 17:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!