特定条件で商品を購入した顧客のカウント方法

このQ&Aのポイント
  • Excel2010で顧客の商品購入管理をしています。
  • 特定の条件で商品を購入した顧客のカウント方法を教えてください。
  • 顧客の数が多く、関数を使わないと集計が困難です。
回答を見る
  • ベストアンサー

特定の条件で一つでもヒットしたセルのカウント方法

タイトルがわかりにくくて申し訳ありません。 Excel2010にて顧客の商品購入管理をしているのですが、下記のデータ内容にてセルの個数のカウント方法を教えていただきますようお願いいたします。 データの内容は、  ・A列:お客様コード  ・B列:購入日  ・C列:店舗コード  ・D列:商品コード となっています。 商品コードはA000~Z999まであります。 実際のデータは添付した画像の様な形となります。 この条件下にて、商品コード「C,D,I,J,K」のつく商品いずれかを購入した顧客の人数をカウントしたいのですが、どのような関数を組み合わせたらよいかわかりません。(該当の商品コードが一つでも購入していれば「1」とカウントします) 添付した画像では、顧客の人数が少ないため目視でわかりますが、実際は顧客数は300人ほどで購入商品数も一人当たり5~10点あるため関数を使わないと集計が困難です。 COUNTIFS関数だけではできず、他の関数を組み合わせたらいいのでは?と思いますがどのような関数をどのように組み合わせたら良いのかがわからないため、良い方法を教えていただきますようお願いいたします。

  • nkhall
  • お礼率84% (132/157)

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

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

同じ人が複数の該当商品を購入していた場合、これを1件とカウントするなら以下のような数式で表示できます。 =COUNT(1/FREQUENCY(A2:A1000*(LEFT(D2:D1000)={"C","D","I","J","K"}),A2:A1000*(LEFT(D2:D1000)={"C","D","I","J","K"})))-1 単純にそれらの商品コードの販売件数を集計したいなら以下の数式になります。 =SUM(COUNTIF(D2:D1000,{"C*","D*","I*","J*","K*"}))

nkhall
質問者

お礼

ご回答、ありがとうございます。 ご提示いただきました方法でバッチリ集計できました!! ありがとうございます!! 求める値はわかりましたが、初めて見るFREQUENCY関数の意味が理解できるようにこれから勉強してまいります。 本当に助かりました。ありがとうございました。

その他の回答 (2)

  • PVA
  • ベストアンサー率62% (5/8)
回答No.3

No1の者です。 すみません、ご存知と思いますがE列に=LEFT(D2,1)と入力したら 下まで数式をコピペして下さいね。 失礼しました。

  • PVA
  • ベストアンサー率62% (5/8)
回答No.1

難しい関数が苦手な者です。 C,D,I,J,Kのいづれかがつく商品を購入した方の総数を出したいということでしょうか? であれば私ならE列に=LEFT(D2,1)と入力。 E列にアルファベット一文字だけ抽出して、あとはフィルターでC,D,I,J,Kに チェックを入れれば抽出された数が左下に出てきませんか? もしくは抽出されたデータの範囲をカーソルで指定すれば総数はポインターに 表示されますよね? 以上、関数が苦手な者の回答ですのでもっとスマートなやり方を ご存知の方がいらっしゃったら私も教えて欲しいです。。。

nkhall
質問者

お礼

ご回答、ありがとうございます。 ご提示いただいた方法を試してみましたが、抽出された数字は確かに総数なのですが、一人の顧客が対象の商品を複数購入していると、1とカウントしてくれないため、もう一手間加えてあげる必要があるようでした。 私の説明の仕方が悪くて申し訳ありませんでした。

関連するQ&A

  • 複数条件でのカウント

    データの個数のカウントで行き詰りましたので質問させていただきました。 複数条件で検索するのですが、その条件の中に AND と OR があります。 現状ではCOUNTIFSを足していって算出していますが、場合により条件が多くて とんでもなく長い式になってしまっています。 なんとか簡潔に短い式にまとめられないかと思いまして試行錯誤したり調べたり してみたのですが答えが出ませんでしたので質問に至りました。 現状では以下の様になっております。 A列・・・2ケタの数字 B列・・・数字・文字列の混合 データは約1000行あります。  このデータから、A列の 10 or 15 のデータで、 かつB列の 4 or 1_100 のデータの個数を求める式です。 =COUNTIFS(A1:A1000,C1,B1:B1000,D1)+COUNTIFS(A1:A1000,C1,B1:B1000,D2) +COUNTIFS(A1:A1000,C2,B1:B1000,D1+COUNTIFS(A1:A1000,C2,B1:B1000,D2) 条件を変えていろいろカウントしたいので、 C1~C2にA列の検索条件を入力するセルとし、 D1~D2にB列の検索条件を入力するセルとしております。 上記の式は条件がそれぞれ2個ずつとなっておりますが、 片方だけで6個までいく事もあり、その場合式がかなり長くなります。 これをどうにかして簡潔に短くまとめたいと思っております。 ご存知の方がおられましたらご教授下さい。 よろしくお願いいたします。

  • エクセルでカウントした数を特定のセルに入力したい

    エクセルの関数について質問させてください。 A列  B列   C列 8/9       リンゴ 8/10      ミカン 8/11      リンゴ 8/12      ブドウ 8/13      ミカン 8/14      リンゴ 8/15      ブドウ 上記のような表で、C列でカウントしたリンゴの数を 前日の日付の行の、B列に入力したいのです。 ※今が8/10だとすると、リンゴの数「3」を  8/9の行のB列の欄に入力したい。 COUNTやCOUNTIFSで色々試してみたのですが、 どうしてもうまくいきません。 どうぞ宜しくお願いします。

  • エクセルで特定のセルだけのカウント

     A  B  C   D 1           × 2   ×  ×  × 3 × 4 × 5 ×    × 上記のような表で、列ごとにその列だけが×のセル数をカウントする方法 がわかりません。 例えばA列=2(3、4行目は他の列に×を含まないのでカウント) B列=0 C列=0 D列=1(1行目) となります。 実際には行数が多いため計算式でカウントしたいと思っています。 どうぞよろしくお願いいたします。

  • Excel COUNTIFSでカウントできません

    Excel2007を使用しています。 複数の検索条件から、データの数をカウントしたかった為、COUNTIFSを使用してカウントしようとしたところ、エラーが返ってきてしまいました。 実際のではありませんが、下記のように記入しました。 =COUNTIFS(A:C,1,D:D,2) SUMPRODUCT((A:C=1)*(D:D=2)) なら、一応やりたいことは出来たのですが、動作が重くなってしまいました。 (面倒がらず列選択せず、きちんと範囲指定すれば別なのかもしれませんが) 何かスマートなやり方があれば、ご教授頂ければと思います。

  • EXCEL 複数条件で重複しないデータのカウント

    こんにちは。 EXCEL2013を使用して以下の関数をご教授ください。 データはデイリーで7000行(日により違います) ★1 A列(番号)は重複しないデータをカウントしたいです。 添付画像で重複しないものを1として数えると、18件です。 そこに条件で、E列(区分)が「1」でF列(支店)が「大阪」をカウントしたいです。 ★2 上記★1のK列(金額)の平均金額を出したいです。 それを別の表に抽出するので、関数をご教授頂けたらと思います。 ★3 C列(顧客)またはD列(顧客名)の総金額(K列(金額)を足した総合計)も 出したいです。これは重複するものも含みます。上位10件ほどを知りたい為。 ★4 ★3に一つ条件を追加でE列(区分)が「0」の時の金額(K列(金額)を足した総合計)も出したいです。これは重複するものも含みます。上位10件ほどを知りたい為。 ★5 ★4のC列(顧客CD)またはD列(顧客名)の全体の注文割合(注文率)も知りたいです。 明日の午前中までに資料を提出しないといけない為、 お早めに回答頂けたら幸いです。 説明不足でありましたら、補足致します。 宜しくお願い致します。

  • エクセル 複数条件で重複しないデータのカウント

    こんにちは。 EXCEL2013を使用して以下の関数をご教授ください。 データはデイリーで7000行(日により違います) ★1 A列(番号)は重複しないデータをカウントしたいです。 添付画像で重複しないものを1として数えると、18件です。 そこに条件で、E列(区分)が「1」でF列(支店)が「大阪」をカウントしたいです。 ★2 上記★1のK列(金額)の平均金額を出したいです。 それを別の表に抽出するので、関数をご教授頂けたらと思います。 ★3 C列(顧客)またはD列(顧客名)の総金額(K列(金額)を足した総合計)も 出したいです。これは重複するものも含みます。上位10件ほどを知りたい為。 ★4 ★3に一つ条件を追加でE列(区分)が「0」の時の金額(K列(金額)を足した総合計)も出したいです。これは重複するものも含みます。上位10件ほどを知りたい為。 ★5 ★4のC列(顧客CD)またはD列(顧客名)の全体の注文割合(注文率)も知りたいです。 お早めに回答頂けたら幸いです。 説明不足でありましたら、補足致します。 宜しくお願い致します。

  • 期間と条件を指定してカウントする関数。

    下記の図でG4~I6に入る関数を教えて下さい。 ピボットテーブルを試しましたがよく分からず、COUNTIFS関数を使用しましたが 日付の入力の仕方がいまいちわかりません。 試しにG4に入力した関数は以下の通りです。 =COUNTIFS(D:D,"○○",C:C,8/16:8/21) この8/16~8/21という指定の仕方がわかりません。 どういう関数を入れればカウントできますでしょうか? あと出来ればこのフォームを使い回したいので表のG3~I3の数字を変えるだけで カウント出来るようにしたいのですが可能でしょうか? 宜しくお願いします。

  • エクセルの条件付きでデータの種類をカウントする関数

    エクセルの条件付きで重複データや空白データをカウントせず、種類数をカウントする関数の書き方を教えてください。 C列の5行目から14行目に「品目」が入力され、D列に「売れた数」が入力されているとします。売れていない場合は「売れた数」は空白。品目等のデータがない行もあります。品目には重複しているものもあります。 ここで、G5セルに「売れた品目の種類数」を表示させる関数をどのように書けばよいか教えてください。 SUMPRODUCTやCOUNTIFまたはMATCH関数を使っていろいろ試してみましたが、うまくいきません。

  • セル間のカウント関数の作り方を教えてください

      A列  B列C列D列 2009/4/25 ○ 2009/4/25 × 2009/4/25 × 2009/4/25 × 2009/4/25 × 2009/4/25 × 2009/4/25 × 2009/4/25 × 2009/4/25 ○ ア 2009/4/25 × 2009/4/25 × 2009/4/25 ×  イ 2009/4/26 × 2009/4/26 × 2009/4/26 × 2009/4/26 × 2009/4/26 × 2009/4/26 × 2009/4/26 ○ ア 2009/4/26 × 2009/4/26 × 2009/4/26 × 2009/4/26 × 2009/4/26 ○ ア イ         最大X数  最大×日数          ウ  エ 初めて質問します、エクセル初心者ですが、上記のように○から○の間の×をカウントする関数式を教えてください。 B列の○から○間のX数をC列の○横のアに×数をカウント、A列の同じ日付12行内に1つも○がなければD列イに1を入れる。 C列ウには、C列アの中での最大X数を表記 D列エにはD列イが2日連続以上で続いたときのみ、その連続日数を入れる。 1日しかなければ1、連続2日間あれば2と入れる。 ア、イ、ウ、エ共に○、×以外の文字列と空白はカウントしない。 色んなエクセル関連本を読んでは探しているのですが、恥ずかしながら上手くできません。 皆様のお知恵をお貸し願います。

  • エクセルでフィルタ後の条件付き個数のカウント

    いつもお世話になっております。 エクセル(2007)で作成した表をフィルタ後に条件に合致する個数をカウントする方法を教えてください。 (例) A列:名前 B列:出身県のデータがあったとします。 名前でフィルタをかけた後、出身県ごとのカウントを行いたいのですが、条件が無い場合のデータ個数はSUBTOTAL関数を使えばOKなのはわかります。 COUNTIFS関数を使うと、フィルタで隠れた行のデータまでカウントしていまいます。 ピボットを使う(使い方がイマイチわかりませんが・・・)という方法もあると思いますが、今回は同一シート無いに関数でカウントしたいのです。 どなたかよろしくお願いいたします。

専門家に質問してみよう