- ベストアンサー
Access レポート オーバーフローとデータ型の不一致
レポートでグループ化したフッターに平均を求めるためにAvg関数で 平均を求めようとしたのですが、オーバーフローやデータ型の不一致が 発生してしまい平均を求めることが出来ません。 (Access2003) クエリでの計算時に#エラーが発生しているのと平均する内容にNULL値が含まれるのが原因だと思いますが、 どのような対処をすればよいでしょうか? #エラーに関しては0/0が原因だと思うので計算対象の0をNULLにすればよいですが NULLだとデータ型の不一致が発生してしまうのですかね? 平均する内容はレコードすべてがNULLの場合や#エラーが含まれる場合があります。
- みんなの回答 (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 と正しく表示されます。 >オーバーフローやデータ型の不一致が発生してしまい平均を求めることが出来ません。 となると、起きている現象が今一つ推測しかねます。
その他の回答 (1)
- CHRONOS_0
- ベストアンサー率54% (457/838)
>クエリでの計算時に#エラーが発生しているのと >平均する内容にNULL値が含まれるのが原因だと思いますが、 エラーは中身を見ないとなんともいえませんが Nullは関係ありません。集計関数はNullを除いて集計してくれます >平均する内容はレコードすべてがNULLの場合や#エラーが含まれる場合があります。 全てがNullの場合はNullになります エラーがある場合はエラーになります エラーは出なくなるようにするしかないですね
お礼
ありがとうございます。 オーバーフロー及びデータ型の不一致に関しては自己解決しました。 集計関数はNull値を無視するのですか、知りませんでした。 オーバーフローに関しては♯エラーをNULL値にしたところ 解消されました。
お礼
ありがとうございます。 オーバーフロー及びデータ型の不一致に関しては自己解決しました。 データ型の不一致に関しては♯エラーが文字として扱われているためと 実際にデータ型が間違っている箇所もありました。 オーバーフローに関しては♯エラーをNULL値に置き換えることによって 解消されました。