access2007で売上データを特定の日付で集計する方法

このQ&Aのポイント
  • access2007での売上データの特定の日付での集計方法について説明します。
  • 売上テーブルには伝票番号、売上日、金額のデータがあります。特定の日付で伝票番号の1, 5, 8ごとの金額を合計する方法を解説します。
  • フォームで指定した日付を入力し、集計ボタンを押すことで、指定した日付の伝票番号1, 5, 8ごとの金額を集計することができます。
回答を見る
  • ベストアンサー

初めて質問させていただきます。

初めて質問させていただきます。 access2007で集計を行いたいのですが、売上テーブルに以下のようなデータがあります。 伝票番号  売上日  金額 11000**1 2010/05/28 1000 11000**2 2010/05/28 2500 11000**3 2010/05/27 2000 51000**1 2010/05/28 1000 81000**1 2010/05/28 2000 81000**2 2010/05/28 1000 という感じでデータがあります。 これを、特定の日付で伝票番号の1,5,8ごとの金額を合計したいと考えています。 例えば、フォームで【2010/05/28】を入力し、集計ボタンを押した際に  日付   伝票番号1 伝票番号2 伝票番号3 2010/05/28  3500   1000    3000 という感じです。 この場合に使用する関数は何が適切(簡単)なのかのヒントをいただければと思います。

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

  • ベストアンサー
  • layy
  • ベストアンサー率23% (292/1222)
回答No.2

1)伝票番号の先頭文字がそのまま集計グループになる仕様とする。 MID関数かLEFT関数で1ケタ目を取得する。 「”伝票番号”」&「x」、項目に付与させる1ケタの判定にも使う。 並びにも使われる可能性も考えて、「伝票番号集計グループ」とかにする。 2)縦並びのデータを横にし合計する。 これはクロス集計クエリが望ましい。縦軸:抽出日付、横軸:伝票番号集計グループ 「伝票番号1」「伝票番号2」「伝票番号3」 よりは 「伝票番号1」「伝票番号5」「伝票番号8」 のがより作りやすい。前者でも判定を入れれば可能。 3)「1」「5」「8」以外があるかどうか。 ほかにもなければ、伝票番号の先頭1ケタを使えるが、 後で「4」で始まるものも増えたとなると 「伝票番号1」・・・「1」から始まるもの 「伝票番号2」・・・「5」から始まるもの 「伝票番号3」・・・「8」から始まるもの 「伝票番号4」・・・「4」から始まるもの と作っておくとギクシャクした構成になってしまう。

kspirit
質問者

お礼

ありがとうございます。 今の自分のレベルで何とか集計できました。 mid関数、left関数をクエリという言葉で一緒に検索したら過去にも同じ質問をした人がいたみたいで。。。 にも関わらず温かくアドバイス頂きありがとうございました。

その他の回答 (1)

回答No.1

下記のクエリを作っておいて画面から入力された売上日で絞込みをするのはどうですか? ※伝票番号はテキスト型、売上日は日付型、金額は数値型と考えて作ってます。  レコード件数が多いようであれば修正が必要かもしれません。  WHERE句でMIDのあたりとか…。 <クエリの内容> SELECT WK日付.売上日, IIF(WK伝票番号1.合計金額 IS NULL, 0, WK伝票番号1.合計金額) AS 伝票番号1_合計金額, IIF(WK伝票番号5.合計金額 IS NULL, 0, WK伝票番号5.合計金額) AS 伝票番号5_合計金額, IIF(WK伝票番号8.合計金額 IS NULL, 0, WK伝票番号8.合計金額) AS 伝票番号8_合計金額 FROM (((SELECT 売上日 FROM 売上テーブル GROUP BY 売上日) AS WK日付 LEFT OUTER JOIN (SELECT 売上日, SUM(金額) AS 合計金額 FROM 売上テーブル WHERE MID(伝票番号, 1, 1) = '1' GROUP BY 売上日) AS WK伝票番号1 ON WK日付.売上日 = WK伝票番号1.売上日) LEFT OUTER JOIN (SELECT 売上日, SUM(金額) AS 合計金額 FROM 売上テーブル WHERE MID(伝票番号, 1, 1) = '5' GROUP BY 売上日) AS WK伝票番号5 ON WK日付.売上日 = WK伝票番号5.売上日) LEFT OUTER JOIN (SELECT 売上日, SUM(金額) AS 合計金額 FROM 売上テーブル WHERE MID(伝票番号, 1, 1) = '8' GROUP BY 売上日) AS WK伝票番号8 ON WK日付.売上日 = WK伝票番号8.売上日

kspirit
質問者

お礼

早速のアドバイスありがとうございます。 今回はこの方法を使用しなかったのですが、今後の勉強のために改めて一つずつ理解できるように勉強していきます。

関連するQ&A

  • エクセルでの集計について

    よろしくお願いします。 今現在とあるソフトに売上データを入力していて、それをエクセルに打ち出しています。 日付、伝票番号、店名、商品名、金額と出るのですが、これを伝票番号別に売上金額の合計を出しています。(1伝票あたり2~3品の売り上げがあります) ただ、伝票番号のみの集計は出せるのですが、それだと日付や伝票番号が記載されません。 伝票番号や日付、店名なども出せて、伝票番号毎の合計金額が出せるような式があるのでしょうか? 今現在は伝票番号毎に集計をかけて、合計が出た列を別シートに日付や伝票番号をコピーして張り付けています。 エクセル初心者なので、 すごく手間で、もし簡単に出来る方法があれば教えてください。 よろしくお願いします。。。

  • access2003 複数のフォームから入力したデータに通し番号を付けてストックしたい

    初心者の恥ずかしい質問かもしれないので申し訳ありませんが、自力で解決できないのでアドバイスをお願いします。 伝票入力画面を作っています。  ◆親)売上入力フォーム:売上管理番号/日付/取引先/売上合計金額 ◆子)売上明細フォーム:商品コード/商品名/単価/数量/明細金額 ◆売上入力テーブル:売上管理番号/取引先/日付 ◆売上明細テーブル:明細番号/売上管理番号/商品コード/数量/明細単価 伝票が数種類あるため、それぞれの伝票を画像として取り込んで複数の入力画面を作り、入力しやすくしようと思っています。 このとき、各フォームから入力したデータを、オートナンバーでひとつの売上入力/明細テーブルにストックしていくにはどうしたらよいでしょうか? よろしくお願いします。

  • Accessで期間指定の売上合計と順位指定のクエリ

    Accessのクエリの質問です。 (1)期間を指定した、顧客の売上を合計。 (2)その順位を出し、1位~100位や250位などの順位を指定した抽出をしたいです。 (1)期間指定の売上合計はできています。 (2)の順位をDCountでしましたが、金額(集計:合計)にしているためか構文エラーがでます。 よろしくお願い致します。 ------------------------------------------------ 2つのテーブルから、Q_売上(クエリ)を作成しました。 tbl顧客 顧客番号 顧客名 tbl販売 販売番号 日付 顧客番号 金額 Q_売上 日付(集計:Where条件) 顧客番号(集計:グループ化) 顧客名(集計:グループ化) 金額(集計:合計) 日付の抽出条件は、 Between [開始] And [終了] としています。 ------------------------------------------------

  • [Excel ADO]合計額の挿入は可能ですか?

    Excel2007のADOを使ってCSVファイルのデータを集計する方法を習得中です ある業務アプリからエクスポートしたデータなのですが、 売上伝票データ: 伝票日付、伝票番号、取引先名、明細番号、商品名、数量、単価、金額、取引区分、納入先コード 納入先コードテーブル: 納入先コード、納入先名 取引区分が0なら売上、1なら入金(入金伝票の場合納入先コードがNULL) これを集計して売上明細表をつくるとして、 伝票毎に伝票合計額、および納入先名を挿入するようなことが SQL文だけで可能でしょうか?

  • 【ACCESS2000】 サブフォーム同士の値のチェックを行いたい。

    ・メインフォーム 合計チェックボタン ・サブフォーム1 伝票番号,売上金額合計 ・サブフォーム2 伝票番号,明細行,売上金額 上記のような構成になっており、合計チェックボタンを 押したときに伝票ごとのサブフォーム1の売上金額合計がサブフォーム2の伝票番号でまとめた売上金額合計より、下回っているものがある場合はエラーメッセージを出したいと思っています。(できればその伝票番号もだしたい。) どのようにすればよいでしょうか。

  • アクセスーフォームでの計算

    こんにちは。アクセスの基本のことだと思うのですが、この度簡単な販売管理を作ろうとしています。アクセス2000を使用しています。 テーブルを商品マスターと伝票テーブルを作成しました。 商品マスターのフィールドは【商品番号】【商品名】【単価】です。 伝票テーブルは【伝票番号】【伝票日付】【商品番号】【個数】【税抜き金額】【消費税】【合計金額】です。 商品番号でリレーションを結んでいます。 伝票入力フォームで【税抜き金額】を計算するのに 商品マスターの【単価】と伝票入力フォームの【個数】を掛けたいのですが、上手いこといきません・・・ 今は【税抜き金額】に『=[個数]*[商品マスター]![単価]』と式を入れています。 エラーが#Name?と出ています。 商品番号でコンポボックスで商品マスターの商品名を選ぶようにしています。商品を選んで個数を入れたら計算されるようにしたいのですが、どのように式を入れたらいいのでしょうか??? すみませんが、ご教授をよろしくお願いします。

  • N:Nのデータの結合について

    お世話になります。 エクセルにて記録がされている会計仕訳データを アクセスにて取り込み結合を行いたいのですが、 うまく結合ができず、困っております。 お忙しいところ申し訳ありませんが、宜しくお願い致します。 【行いたい事】 日付 2004/4/1 伝票番号 1     売掛金100/ 売上105   消費税  5 【現状】 日付 2004/4/1 伝票番号 1 売掛金100/ 売上105 消費税  5/ 売上105 → この部分が不要 借方と貸方でテーブルをもつ、伝票番号と日付で クエリの結合を行っております。 また、伝票番号は、例のように同じものが 複数ありますので、日付もキー項目になります。 例 伝票番号 日付    1   2004/4/1    1   2004/5/1 この場合、売上が2つでてしまい(本来1つ) たぶん、テーブルの作成の方法とリレーションの 仕方が悪い為に、うまくいかないと思います。 記入例ではN:1になっておりますが、N:Nのパターンも あります。 環境は、OS:WinXPpro アクセス2003です。 お忙しいところ申し訳ありませんが、宜しくお願い致します。   

  • アクセスで年度で表示

    アクセス2000 初心者です。 [伝票テーブル.TBL] にデータがあります。 フィールド は  [日付] と [売上] です。 [日付] について 年別でなく 年度別の 売上 合計 と 件数 を 集計 をしたいのです。(4月1日から3月31日まで) (1)レポートを使う場合 ウイザードを使って、グループレベルを [日付] にする。そこで グループ間隔の設定 の中に、"年" と "四半期" しかありません。 "年度" がないので、困っています。 (2)クエリを使う場合 選択クエリで 年度 の 式: を作ってみようとして年度: if(month([日付])<4,year([日付])-1989,year([日付])-1988)などと、何も分からずにやってみましたが、予想どおりうまくいきませんでした。 関数は、何を使うのでしょうか? [ とか " が間違っていますか? これで、できた選択クエリ を [年度]について、クロス集計クエリウイザードで処理したらできるのではないかと思っていますが、間違いでしょうか?もっとよい方法があるでしょうか? よろしくお願い致します。

  • アクセス2000を使ってのデータ集計方法

    はじめまして、アクセス2000を使って支払テーブルを作成しました。フィールドは、日付 メーカーID 金額 現場名ID 勘定科目ID・・等です。 メーカと現場名と勘定科目はマスタテーブルを別に作って そこから参照させています。これにデータを打ち込んでいって月別金額集計と メーカ別金額集計と 現場名別金額集計と勘定科目別金額集計をさせたいのですが フォームとレポートに支払テーブルレコードを表示させて 合計金額を表示させるにはどのようにすれば良いでしょうか? 判りにくい説明ですが 4月分のデータを一覧表示させて合計金額を表示次に5月分のデータを一覧表示させて合計金額を表示と言う具合です

  • access2003 抽出条件が持ち越されてしまう

    http://okwave.jp/qa3580875.html ↑にて質問させていただいた者です。  一部繰り返しになりますが、2000種ほどの商品を扱っています。伝票を見ながらフォームから直接売上入力を行いたく思います。 ◆親)売上入力フォーム:売上管理番号/日付/取引先/取引先伝票番号/売上合計金額 ◆子)売上明細フォーム:商品コード/商品名/単価/数量/明細金額 ◆売上入力テーブル:売上管理番号/取引先/日付/取引先伝票番号 ◆売上明細テーブル:明細番号/売上管理番号/商品コード/数量/明細単価 子フォームで商品コードのフィルターとして、 1)親フォームで選択した取引先の商品のみ→[Forms]![売上入力フォーム]![取引先]を導入 2)ワイルドカード「Like "*" & [商品コードの一部を入力] & "*"」 のふたつを使っていますが、うまく動作してくれません。 いったん商品コードを選択すると、明細の次の行に移動しても取引先選択のポップアップが出ず、コンボボックスには同じ選択肢が提示されます。さらに、新しいレコードに移動してもポップアップなし&同じ選択肢が続きます。 この状態を回避する方法を教えてください。 長くなりましたが、どうぞよろしくお願いします。