• ベストアンサー

アクセス2000で、DBの0と空白以外の行数をカウントしたい

いつもお世話になります。 アクセス初心者で、恐らく以前にも同じような質問があったと思うのですが、過去の回答を見てもどうしても分からなかったので教えていただけますでしょうか。 DBの1列目には"店舗名"2列目には"商品名"3列目には"売上数量"があります。1コも売れなかった場合は"0"か空白になっています。「店舗別に商品が何種類売れたか」をカウントしたいのです。 クエリで、"店舗名"をグループ化、"売上数量"をカウントすることまでは分かるのですが、「"0"と空白を除外してカウントする」方法が分かりません。 お手数をおかけしますが、手順を教えていただけますでしょうか。

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

  • ベストアンサー
noname#60992
noname#60992
回答No.8

No6 の手順について説明させていただきます。 まず、対象データのみを抽出するクエリを作ります。 売上数量の抽出条件に Is Not Null And <> 0 (これは他の方も指摘されていますが Is Not Null And >0 でもOKです。) と入れてください。 この時点でこのクエリを実行させ参照できる全てのデータの売上数量に1以上の数字が入っていることを確認してください。 このクエリを名前を付けて保存します。 その次に新しくクエリを作成し、参照元として最初に作ったクエリを指定します。 このクエリは集計クエリとして、店舗名でグループ化し、他のフィールドを一つだけ追加してカウントとします。 このフィールドは、売上数量とすると分かりやすいかもしれませんが、実際には何でもかまいません。 このクエリを実行させれば、店舗別に何種類売れているか分かると思います。 集計クエリを作る際の注意点として (1)クエリのデザインビューでの抽出条件は、集計を行った後に該当データを抽出するものです。 (No3の回答がごめんなさいであった理由です。) (2)フィールド数が多い場合はグループ化が必要以上に入ってしまうと、予期せぬ結果が出ることがありますので、そのあたりをしっかり確認すること。 などが考えられます。 もちろん他の方法でもできますが、分かりやすい方法として参考になれば幸いです。 クエリを2段階に分けることのメリットは、分かりやすいということと、場合によっては速度が速くなることが考えられます。 デメリットとしては、構造が単純でなくなることや、無駄な記述が発生することが考えられます。 将来的に別なデータベースに移行することを考える際はそのあたりも問題になりえます。

7-samurai
質問者

お礼

いつもお世話になり、ありがとうございます。 このご回答をいただいてから、すぐに試させていただきまして、問題解決できました。ありがとうございました。 他の方の回答も、試してから御礼を記入しようと思っていたのですが、急ぎの用が入っていて今まで御礼が書けませんでした。御礼が遅くなりまして大変申し訳ございません。

その他の回答 (7)

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.7

>「クエリ」を選択→「デザインビューでクエリを作成する」→テーブルを選択→ >"店舗名"と"売上数量"をドラッグ&ドロップ→ツールバーの"Σ"を選択→集計で"店舗名"でグループ化 >"売上数量"でカウントを選択→売上数量の下の抽出条件のセルで"is not null and <> 0"と入力→実行 上記で出来るはずです。 売上数量のWHERE条件の抽出条件としてIs Not Null And >0かIs Not Null And <>0で空白と0は除かれます。 記述など間違えていないでしょうか。 店舗名はグループ化・商品名はカウント・売上数量はWHERE条件としてIs Not Null And >0かIs Not Null And <>0と記述。 これで出来ます。 >商品a・bが何万個売れていようと"2"種類売れているか 蛇足ですがこれは通常なら商品をカウントすると思いますが・・売上数量は抽出条件として空白か0以外を抽出するとして使用。構文としてはこれが正しいと思います。

7-samurai
質問者

お礼

いつもお世話になります。 ご丁寧にご説明いただいたおかげで、理解する能力が著しく低い私でも、理解できました。また、アクセスの使い方も大分理解が進みました。 ありがとうございました。

noname#60992
noname#60992
回答No.6

NO2ですが、たびたびごめんなさい。  一旦0と空白を除外したクエリを元に集計クエリを作成するのが、一番簡単ですね。

  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.5

クエリの表示を「SQLビュー」にして、以下のSQL文をペーストして下さい。 (元のテーブル名は「商品別売上明細」と仮定してあるので、ペーストしてから質問者さんが実際に使っているテーブル名に直して下さい) SELECT 商品別売上明細.店舗名, Count(商品別売上明細.商品名) AS 売れた商品の種類数 FROM 商品別売上明細 WHERE (((商品別売上明細.売上数量)>0)) GROUP BY 商品別売上明細.店舗名;

7-samurai
質問者

お礼

いつもお世話になり、ありがとうございました。 初心者のため、上記の内容をまだ試せておらず、理解できてから御礼を記入させていただこうと思っていたのですが、急ぎの業務が入っており、今の時点でまだ試せておらず、大変申し訳なく存じております。 ですが、後日に必ずマスターさせていただきます。 この度は、ありがとうございました。

  • bonaron
  • ベストアンサー率64% (482/745)
回答No.4

フィールド:Nz([売上数量])    集計:Where 条件  抽出条件:<>0 をクエリに追加です。

noname#60992
noname#60992
回答No.3

NO2です。 質問をちょっと読み間違えました。  カウントと合計を間違えました。 売上数量の抽出条件をせっていすれば対象データのみカウントします。  is not null and <> 0 でよいかと思います。

7-samurai
質問者

補足

早速のご回答ありがとうございます。 is not null and <> 0 を試してみたのですが、うまくいきませんでした。 オブジェクトで「クエリ」を選択→「デザインビューでクエリを作成する」→テーブルを選択→"店舗名"と"売上数量"をドラッグ&ドロップ→ツールバーの"Σ"を選択→集計で、"店舗名"でグループ化、"売上数量"でカウントを選択→売上数量の下の抽出条件のセルで、"is not null and <> 0"と入力 →実行 と行ったのですが、間違っていますでしょうか。また、No6でいただいたご回答なのですが、申し訳ないですが、私の知識では手順がわかりません。お手数をおかけしますが、手順を教えていただけませんでしょうか。

noname#60992
noname#60992
回答No.2

0もnullも集計しても数に数えませんので、とくに考える必要はありません。

  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.1

「何種類売れたか」ですよね? A店で商品aが150個 A店で商品bが200個 の場合に「売上数量」をカウントしちゃうと「350」になってしまいますが、本当に「売上数量」をカウントしても良いのですか?

7-samurai
質問者

補足

早速のご回答ありがとうございます。 まだあまりアクセスを勉強できていないのですが、「カウント」とは、行数を数えるものだと思っていたのですが、上記の例だと、商品a・bが何万個売れていようと、「"2"種類売れている」という答えが欲しいのです。 私の見当違いでしょうか?

関連するQ&A

  • Access カウント

    3種類の売上があるのですが売上0以外の数を数え業態でグループ化する場合 7つのクエリが必要だと思うのですが間違っていないでしょうか? 売上の抽出条件にnot 0指定したクエリを3つを作成します。 抽出クエリ1 抽出クエリ2 抽出クエリ3 このクエリから新たなクエリを作成しさらに業態でグループ化し売上をカウント指定します。 業態別カウントクエリ1 業態別カウントクエリ2 業態別カウントクエリ3 このクエリから新たなクエリを作成。 業態で結合、フィールドに各業態別売上カウント、業態名を設定。 グループ化したクエリに抽出条件を指定しても駄目だということに最近気づきました・・・。

  • ACCESSの空白をカウントする

    こんにちはAccessについて教えて下さい。 素人です宜しくおねがいします。 日付のデータが入るテーブルがあります。 この日付は物品の出荷の日にちと入荷の日にちを示しています。 入荷したら入荷日に日付を入れ、出荷したら出荷日に日付を 入れます。 在庫管理のため入荷日が入っているけれど出荷日を入力していない空白せるの数をVBAかクエリかWhere条件式でカウントしたいです。 調べたところクエリの集計のカウントでは空白セルをのぞいた数を数えてしまうようです。 ですから、Is Nullでも””””でも集計できなかったです。 どうすればよろしいでしょうかどうぞ宜しくお願いします。

  • アクセス2000 複数のテーブルに同じクエリの処理をかけたい

    いつもお世話になります。 アクセスに"DB1"~"DB20"までの20コのテーブルがあり、レイアウトは全て同じです。 "店名" "アイテム数" "数量" "金額 "・・・ "グループ化" "カウント" "合計" "合計"・・・ それを上記のクエリで集計して、"集計1"~"集計20"のテーブルを作りたいのですが、現在はDB1が終わったらDB2を表示させて1項目ずつテーブル名を変えてDB1を消してクエリ実行・・・と行っています。 ミスも結構あります。 マクロか何かで出来るのならと思い、ご質問させていただきました。 以上宜しくお願い致します。

  • アクセスで空白がグループ化されない

    過去に質問があるか検索をしたのですが、 なかなか、合致したものが、見つからず、 すみません。 質問させていただきます。 20,000件ほどのデータで、Nullも含むデータを アクセスクエリのグループ化をしたのですが、 空白がどうしても、2つに分かれてしまいます。 見たところ、何も入力されていず、 エクセルにエクスポートして、if文で同じか確認しても 同じという結果がでます。 データ自体は、エクセルからインポートしました。 初心者の質問ですみません。 よろしくお願いします。 ちなみに、20,000件のうち、空白は2,777件で、 クエリでカウントすると、13件と2764件で分かれます。 また、エクセルのフィルターを使って、空白の件数を出すと 2,777件になります。 よろしくお願い致します。

  • 【アクセス】空白があると集計レポートがエラーに!

    アクセスで集計クエリーを実施し、その内容をレポートで見やすく表示するように作成しました。 ところが列のフィールドに該当する値がないとレポートが上手くできません。 具体的には行に顧客、列に商品を羅列し売上高を集計させるクエリーで、商品(A、B、C…)の内、当月商品Bの売上が無かったとするとエラー「'[商品B]'を有効なフィールド名、または式として認識できません」が発生します。 試しに商品Bの売上を0円とした新しいレコードを作成するとうまく表示されるのですが…。 元になるクエリーはBの売上があろうがなかろうが正常に表示できるのに、それを元に作ったレポートが表示できないので困っています。どなたか助けて下さい。よろしくお願いします。

  • アクセスのクエリの作り方

    初心者なので教えてくださいませんか? アクセスでテーブルを複数作成して、それをクエリで結合するときに、どのテーブルからどのフィールドを選べばいいのかわかりません。 例えば・・・ 売上テーブル:NO 売上日 商品コード 数量 商品テーブル:商品コード 商品名 単価 この二つのテーブルを結合するクエリを作ります。 NO 売上日 商品コード 商品名 単価 数量 上記のフィールドを使用したいのですが、このとき、商品コードをどちらのテーブルのを使ったらよいのでしょう。 その判断は何からしたらよいのでしょうか。 うまく説明できているかわかりませんが、よろしくお願いします。

  • アクセスのクエリで空白を0として計算したい

    アクセスのクエリで1・2列目に数値データを入れておき、3列目で合計を表示させたいのですが、1・2列目に空白セルがある場合には0(ゼロ)として計算したいのです。(データが空白だと、3列目も空白になってしまいます。) 1列目 2列目 3列目(合計)  3   2   5 (空白)  2  (空白) ←これを2と表示したい! (空白) (空白) (空白) ←これを0と表示したい! わかりにくい文章ですみませんが、教えてください。

  • アクセスのカウントの仕方

    アクセス2007で行は東京*で始まる項目、列項目で数値をいれてその数値をカウントしたいのですが・・クエリでここまでは表示できるのですが、数値にあるたとえば”21”をカウントしたいときどうすればよいでしょうか。よろしくお願いします。     数値1 数値2 数値3 東京*  19  20  21 東京*  20  21  22

  • エクセル セル内の文字列を空白から空白まで抽出したい。

    一つのセルに入っている文字列を複数のセルに分割したいのですが良い方法が見つかりません。 具体的には 「商品名 単価 数量 金額」が一つのセルに入っているのですが、これをそれぞれ「商品名」「単価」「数量」「金額」というように別のセルに分けたいのです。 条件は次です。 ・文字列の区切りは空白(スペース)。 ・商品名や金額などそれぞれの文字列の長さは決まっていません。 ・商品名には名称の中に空白が使われている場合があります、その数も決まっていません。 以上です。いろいろ関数を使ってやってみたのですが、どうもうまくいきません。 どなたか良い方法がありますでしょうか、よろしくお願いいたします。

  • エクセルでカウント

    エクセルで商品ごとの月間販売数量をカウントする方法を教えてください。  COUNTIFで商品名ごとにカウントはできるのですがそこに数量もかけて計算する方法が分かりません。 表には(1)出荷日(2)商品名(3)出荷数量の順で入力されています。 よろしくお願いします! 

専門家に質問してみよう