• ベストアンサー

アクセスのレポートでのグループ内平均の方法

アクセス2000を使用しています。 レポートでグループごとに集計を表示するようにしています。 数値に正と負の数値がまざりあっています。 平均値を正と負の数値で別々に出したいのですが可能でしょうか? 全ての数値の平均値の出し方は分かるのですが分けようにも どこをどうしたらいいかわかりません。ご教授お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.5

現状の 平均値のコントロールソースが、=avg([数値コントロール名]) になっているのなら 正平均値は、=sum(iif([数値コントロール名]>0,[数値コントロール名],0)) /sum(iif([数値コントロール名]>0,1,0)) だと?

IloveCECIL
質問者

お礼

ありがとうございました!出来ました!助かります。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (4)

回答No.4

>区分=1となっていますが区分はグループの名前で間違いないですか? >フォームで区分の名前を検索し、レポートに表示するようにしています。 >グループ分けしている名前=平均を出したいグループの名前という認識でよろしかったですか? >うまく表示されません。 添付図のレポートのレコードソースは、 SELECT Test.ID, Test.区分, Test.数量 FROM Test; のようです。 また、並び替え/グループ化は添付図のようです。

IloveCECIL
質問者

補足

ほんとに何度もすいません。。。 レポートのレコードソースは選択クエリを使用していますので クエリの名前になっています。 レポートはフォームと連動していてフォームに品名を入力するとその品名のレポートが 表示されるようになっています。 どうしていいか分かりません。。。お願いします

全文を見る
すると、全ての回答が全文表示されます。
回答No.3

補足:添付図が見にくいようなので・・・。 =DAvg("数量","TEST","区分=1 AND 数量>=0") まず、DAvg()を試されて、その後に3倍速化に挑まれたがいいかもです。 http://www.accessclub.jp/ado/

IloveCECIL
質問者

補足

やはりエラー表示されるのですが。。。 区分=1のあたりなのかな?と思っています。 何回もすいません>_< コントロールソースに下記を入力しています。 =DAvg("数値","レポート名","品名=1000B-1 AND 数値>=0")

全文を見る
すると、全ての回答が全文表示されます。
回答No.2

補足されている要領で間違いありませんよ。

IloveCECIL
質問者

補足

区分=1となっていますが区分はグループの名前で間違いないですか? フォームで区分の名前を検索し、レポートに表示しるようにしています。 グループ分けしている名前=平均を出したいグループの名前という認識でよろしかったですか? うまく表示されません。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

色んなやり方があるかと思いますが・・・。ここでは、添付図のやり方を紹介します。 =DBLookup("SELECT AVG(数量) FROM TEST WHERE 区分=1 AND 数量<0") =DBLookup("SELECT AVG(数量) FROM TEST WHERE 区分=1 AND 数量>=0") ここでは、ユーザー関数 DBLookup()を用いています。もちろん、AccessのDLookup()、DAvg()でも実現できます。両者の差異は、前者が後者より3倍速で動作すること。SQL文全体を書けること。それだけの違いです。 Public Function DBLookup(ByVal strQuerySQL As String, _              Optional ByVal ReturnValue = Null) As Variant On Error GoTo Err_DBLookup   Dim DataValue   Dim rst     As ADODB.Recordset   Set rst = New ADODB.Recordset   With rst     .Open strQuerySQL, _        CurrentProject.Connection, _        adOpenStatic, _        adLockReadOnly     If Not .BOF Then       .MoveFirst       DataValue = .Fields(0)     End If   End With Exit_DBLookup: On Error Resume Next   rst.Close   Set rst = Nothing   DBLookup = IIf(Len(DataValue & ""), DataValue, ReturnValue)   Exit Function Err_DBLookup:   MsgBox "SELECT 文の実行時にエラーが発生しました。(DBLookup)" & Chr$(13) & Chr$(13) & _       "・Err.Description=" & Err.Description & Chr$(13) & _       "・SQL Text=" & strQuerySQL, _       vbExclamation, " 関数エラーメッセージ"   Resume Exit_DBLookup End Function

IloveCECIL
質問者

補足

申し訳ございませんがもう少し詳しく教えて頂けませんでしょうか? =DBLookup("SELECT AVG(数量) FROM TEST WHERE 区分=1 AND 数量<0") 上記の文はコントロールソースに入力でいいんでしょうか? コントロールソースに入力すると#Name?となります。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ACCESSでのレポートについて

    ACCESS2000のレポートで 数値が負の場合は文字色を赤色で 数値が正の場合は文字色を黒色で表示するように設定することはできますか 宜しくお願いします

  • アクセス レポート平均 エクセルへ

    アクセスでレポートの作成をしたのですが、エクスポート、リッチテキスト→ワードで読み込みをして、そのデータをエクセルに貼り付けて編集しています。 しかし、空白部分の項目(セル)が詰まってしまいます。 作成したレポートの空白を0や-などで埋めたいのですが、平均を使用しているため数値が変わってきてしまいます。 -の場合はデータ形式が違うとエラーがでます。 0を入力しても平均が出るように出来ないでしょうか? ちなみにiif関数では無理なようです。

  • ACCESSのレポートの表示がおかしい

    ACCESS2000でレポートを作成していますが、テキストの表示がおかしいのです。 例示しますと、 ●テキストデータの途中で改行されて2段表示されてしまう。 ●データソースの集計クエリで「先頭」のデータを指定しているのに異なったデータが表示されてしまう。 等です。 単なるバグなのでしょうか。 レポート作成の度に表示が異なるため、数値データの集計内容にも疑問をもたれてしまいます。 よろしくお願い致します。

  • Access2007 集計レポートについて(2)

    Access2007 集計レポートについて、質問内容が不明との事で 再度イメージを添付し説明させて頂きます。 ブランドは全部で8つ、担当は全部で16名、それぞれのグループの 計が5つ、合計覧が1つあります。 各担当には目標と実績があり、目標数値は目標テーブルに入力された 数値を反映させ、実績は基幹システムのDBへリンクし集計させます。 また、1~8までのブランドの合計、当月受注予算、(予算に対しての)増減、 年度累計、(年度累計に対しての)増減も作成したいと思います。 レポート フッターを利用して集計レポートを作成していたのですが、 レコードセットのフィールド数:255を超えています、とのメッセージが 表示され先に進まなくなってしまいました。 そんなに複雑な表ではないと思っていたのですが、壁にぶち当たってしまいました。 この様はレポートの作成はできないのでしょうか? どうかご指導、お願い致します。

  • レポートでグループレベルの変更 (ACCESS)

    ACCESSでレポートを作りました。 グループレベルを設定して、集計をしています。 レポートのグループレベルは以下のとおりです。 会社コード     ・・・グループ1  請求先コード   ・・・グループ2   請求金額 等  ・・・データ    まず、会社コードのグループで括り、その下位のグループは請求先コードで括 り、その下位で請求金額等のデータを集計しています。 ここで、真ん中の請求先コードを、新たにつくった部門コードに置き換えたい のですが、クエリおよびフォームの請求先コードを部門コードに変えただけで は、当然だめでした。 グループレベルの変更をどこかでしなくてはいけないと思うのですが、可能で しょうか?可能であればどこで変更すればよいのでしょうか? レポートがたくさんあって、1から作り直すとめんどうなので、既存のレポー トを修正して作りたいのです。 よろしくお願いします。

  • Access2007 集計レポートについて

    Access2007 集計レポートについて質問させて下さい。 営業マンが全部で17名、それぞれのグループが5つに 分かれています。 集計内容は、各17名とそれぞれが所属するグループ5つ、 これが13のブランド別での内容となります。 各担当にはそれぞれ月次での目標数と金額が、 集計時の実績数と実績金額を表示させたいと考えています。 現在の方法はレポートのフッター部分を使用して 上記下記項目を設定し集計しようとしているのですが、 フィールド数が255を超えていますとのメッセージが出てしまい、 先へ進むことができません。 1人の営業のレポートは上記13のブランドに対し 目標と実績が発生しますので26のフィールド?が発生してしまいます。 その26のフィールド×22=572のフィールド?が必要となってしまいます。 目標にかんしては月次での目標テーブルから該当データを持ってくる様に しており、実績が基幹システムからのデータリンクにて集計する形を 取っていますが、最終的に1つのレポートで作成したいと思っています。 今まではExcelで手入力で作成していたのですが、Accessを使用できる 環境があり、合理的に数字の集計ができればと思い作成していたのですが 255の壁にぶち当たってしまいました。 何か良い方法があれば教えて頂きたいと思います。 尚、当方まだ初心者レベルとお考え下さい。 宜しくお願い致します。

  • アクセス2010 レポートのコントロールグループ化

    アクセス2010を使用することになりました。2003の時は、レポートで、コントロールをグループ化して、グループ化したものをコピーする際、グループ化のままコピーできていましたが、2010では、グループ化した構成の1つのコントロールのみ、それもプロパティが変わってコピーされます。プロパティが変わるのは、色調でした。このようなことはみなさんに発生しませんか? グループ化については、グループ化のアイコンを使用しています。 正しくグループ化する方法があれば教えて下さい。

  • Accessレポートグループフッターの高さについて

    いつもお世話になっております。 Accessレポートにおける、グループフッターの高さについてお聞きします。 ページは10ページあるとします。1~9ページまでのグループフッターの高さは3センチとし、最終ページのみ1センチにしたいと考えています。 この設定方法が分かりませんので、どうぞご教示をよろしくお願いいたします。 使用Accessのバージョンは2010です。

  • 「Access2010」グループ化、集計について

    アクセス2010を使っている者です。 グループ化、並び替え、集計を設定したテーブル、クエリについてレポートを作る場合(オートレポート機能か、レポート作成ウィザードを使います)、その設定はレポートにそのまま反映されますか?

  • Access 複数列レポートにおいてグループのタイトルをレポート幅いっ

    Access 複数列レポートにおいてグループのタイトルをレポート幅いっぱいに表示したい Access 初心者です。 1ページに複数のグループ化されたデータを表示したく、2列のレポートを作成しています。 この際に、各グループのタイトルをレポート幅いっぱいに表示したいと考えています。 グループヘッダーで実現しようとしたのですが、1列分の幅に出力されてしまいうまくいきません。 グループヘッダーのみページレイアウトを2列ではなく1列にする方法はありますでしょうか? また、他にうまい方法があれば、ご教示いただければ幸いです。 よろしくお願いいたします。

専門家に質問してみよう