
CSVデータなのですが、
2行毎に購入者と、伝票番号、商品番号、商品データがあります。
1行目と2行目に伝票番号と購入者が同一になっており、
商品番号と、商品が別になっています。
例a b c d
購入者 伝票番号 商品番号 商品名
1 Aさん 00010 1001 チョコ
2 Aさん 00010 1003 アイス
3 Bさん 00011 1001 チョコ
4 Bさん 00011 1002 スイカ
5 Cさん 00012 1001 チョコ
6 Cさん 00012 1002 スイカ
.
.
.
このような形で、商品を二つ買っており、同一の内容を購入している人数が何人かカウントしたいです!!
商品コードをCONCATENATE関数で
=CONCATENATE(C1" "C2)
の値をカウントする等考えましたが、どなたかお力添えお願いします。
A 回答 (8件)
- 最新から表示
- 回答順に表示
No.8
- 回答日時:
No.7です。
前回回答で、
>「同一購入者が再登場することがある」という前提がないと、
>最大2商品の組合せしかあり得ないことになります。
と述べましたが、仮に「同一購入者が再登場することがある」だとするとどうなるか考えてみました。
添付画像をご覧ください。購入者Aと購入者Bが2度登場しています。
この場合、最大4商品の組合せがあることになります。そこで、O列に「3商品組合せ」を全て登録しています。
6個から3個選ぶ組合せは全部で20種類あります。それぞれの組合せの購入者が何人いるかを計算する数式は前回回答の数式を若干修正して、
P2セルに
=SUMPRODUCT((INDIRECT(LEFT(O2,3))>0)*(INDIRECT(RIGHT(O2,3))>0)*(INDIRECT(MID(O2,5,3))>0))
を記述し、下方向へコピーすればよいということになります。

No.7
- 回答日時:
ご質問者は
>1行目と2行目に伝票番号と購入者が同一になっており、
>商品番号と、商品が別になっています。
とおっしゃっています。
データがこの形式だと、「同一購入者が再登場することがある」という前提がないと、最大2商品の組合せしかあり得ないことになります。
にも拘わらず、ご質問者は
>これは2つ購入したパターンですが、3つ購入した
>パターンや3つ購入したパターンもできれば最高です。
とおっしゃっています。「最大2商品の組合せしかない」のに、どういう意味なのか意図が不明です。
また、商品番号と商品の組合せは「ユニーク」であるというのが「常識」ですが、ご質問者の例示の中には「商品番号903=スイカ」と「商品番号904=スイカ」の二種類登場します。
もしかすると「スイカ(上)」「スイカ(並)」とか種類が別れているのかもしれませんが、「常識」に基づいて「商品番号904=スイカ」は「商品番号903=スイカ」の間違いだと判断して統一しました。
例示されたデータに、この修正を行ったうえで、とりあえず手順を考えてみました。
添付画像①をご覧ください。元データはA列~D列にあります。まず、A1~D23セルを選択し、以下の手順でピボットテーブルを作成します。
(1)「メニュー」⇒「挿入」⇒「ピボットテーブル」から「ピボットテーブル作成」ダイアログを表示させ、「配置場所」を「既存のワークシート」とし、F1セルを指定します。
(2)「商品番号」「商品」を「列」のボックスへドラッグ&ドロップ
(3)「購入者」を「行」のボックスへドラッグ&ドロップ
(4)「商品番号」を「∑値」のボックスへドラッグ&ドロップ
(5)「∑値」にドラッグした「商品番号」をクリックし、「値フィールドの設定」から「合計」ではなく「個数」を選択
(6)「デザイン」⇒「レポートのレイアウト」から「表形式で表示」を選択
(7)「デザイン」⇒「小計」から「小計を表示しない」を選択
すると添付画像①の中央にある「ピボットテーブル」が出来上がります。
次に以下の手順で範囲に名前を定義します。
(1)ピボットテーブルの商品の左端列から右端の商品列最終行まで、個数が表示されている範囲を全て(添付画像でいえばG3セル~L14セル)を選択する
(2)「ALT+M」キーを押す
(3)「C」キーを押し、「選択範囲から名前を作成」ダイアログボックスを表示
(4)表示されたダイアログボックスで「上端行」にチェックが入っていることを確認
(5)OKボタンを押す
ご質問者の目的は
>アイスとチョコの組み合わせは何人が購入しているかをカウントしたい
ということですので、
2商品の組合せのリストをO列に作成しています。6商品ありますので、そこから2商品を選ぶ組合せは15種類あります。
添付画像ではO2セルに「アイス・チョコ」の組合せが入力されています。
P2セルに
=SUMPRODUCT((INDIRECT(LEFT(O3,3))>0)*(INDIRECT(RIGHT(O3,3))>0))
という数式を記述し、下方向へコピーします。
これで、O列に入力されている「商品組合せ」を何人が購入しているか計算できます。

No.6
- 回答日時:
「2つ購入したパターン」の形式の提示もしないで、「3つ購入したパターンもできれば最高です」とは空いた口が塞がりません!
前者の場合はここの添付図の形式が分かり易いかと思いますが、後者(3つ以上)の形式は貴方から提案してみてください。

No.5
- 回答日時:
[No.4]用の操作手順で~す。
 ̄ ̄式 =D2&"と"&D3&"を購入" をセル H2 に入力⇒セル H3 は空白の
 ̄ ̄ままの放置プレー⇒範囲 H2:H3 のフィルハンドルを下方にズズーッ
 ̄ ̄とオートフィル⇒範囲 H2:H1000 を選択⇒Ctrl+Cをパシーッ⇒セル
 ̄ ̄J2 を選択⇒マウスの右クリック⇒[貼り付けのオプション]直下の
 ̄ ̄[123](値)アイコンをツン⇒選択状態のまま、[データ]⇒[並べ替えと
 ̄ ̄フィルター <[A→Z](昇順)アイコン>]をツン⇒“現在…並べ替える”
 ̄ ̄に目玉入れ→[並べ替え]→式 =COUNTIF(H:H,J2) を入力したセル
 ̄ ̄K2 のフィルハンドルを「エイヤッ!」とダブルクリック
オ・シ・マ・イ
No.4
- 回答日時:
こんなのではダメですか?
もしOKなら、率直に言えば、ツマラナイ(*^_^*)
添付図参照(Excel 2019)
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄↓↓↓↓↓↓↓↓↓↓↓↓↓

No.3
- 回答日時:
補足要求です。
1.マクロでなら実現可能ですが、マクロでもよろしいでしょうか。
以降は、マクロでの前提です。マクロがNGの場合は、回答不要です。
2.出力先は、2行目以降になります。
①H列に商品名の組み合わせ(例 アイスとチョコ)
②I列にその組み合わせをもつ人数
上記でよろしいでしょうか。
3.商品番号が異なり、商品名が同じになるケースはありますか。
例 Xさん 商品番号=1100 商品名=バナナ
Xさん 商品番号=1200 商品名=みかん
Yさん 商品番号=1100 商品名=バナナ
Yさん 商品番号=1200 商品名=みかん
Zさん 商品番号=1500 商品名=バナナ・・・商品番号が他と異なるが商品名は同じ
Zさん 商品番号=1200 商品名=みかん
その場合は、商品番号が異なるので、同一の内容とはみなしません。
出力結果は以下のようになりますが宜しいでしょうか。
H列 I列
バナナとみかん 2・・・・・XさんとYさん
バナナとみかん 1・・・・・Zさん
4.3つ購入したパターンの場合
例 Xさん 商品番号=1100 商品名=バナナ
Xさん 商品番号=1200 商品名=みかん
Yさん 商品番号=1100 商品名=バナナ
Yさん 商品番号=1200 商品名=みかん
Zさん 商品番号=1100 商品名=バナナ
Zさん 商品番号=1200 商品名=みかん
Zさん 商品番号=1500 商品名=りんご
Zさんだけが3つの商品を購入しています。
2つの商品はXさんと同じですが、3つ購入しているのでXさんと同じ内容とはみなしません。
出力結果は以下のようになりますが宜しいでしょうか。
H列 I列
バナナとみかん 2・・・・・XさんとYさん
バナナとみかんとリンゴ 1・・・・・Zさん
No.2
- 回答日時:
こんにちは
商品番号で検索して、重複している名前を数えればよいってことでしょうか?
・データの1行目はタイトル行で、A列が購入者名、C列が商品番号として、
2行目から実際のデータが並んでいるものと仮定
・検索したい商品番号がどこかのセルにあるものとします
(以下ではF1セルと仮定)
Office365環境であれば、とりあえず
=COUNTA(INDEX(FILTER(A2:D99,C2:C99=F1),,1))-COUNTA(UNIQUE(INDEX(FILTER(A2:D99,C2:C99=F1),,1)))
で、求められると思いますが、3回以上購入している人がいると、ダブって数え始めますのでご注意ください。
(3回以上の購入者が存在するような場合には、下の方法を試してみてください)
365環境ではない場合に、直接求めるのはそれなりに面倒そうですね。
作業列を利用する方法で良ければ、上記の「3回以上」の人も含めて正しくカウントすることが可能です。
条件は同じとして、作業列の2行目に
=IF(C2=$F$1,(COUNTIFS(A$2:A2,A2,C$2:C2,$F$1)=2)*1,"")
を入力して、下方にフィルコピー。
そのうえで、作業列の合計を求めれば(←SUM関数等で)、ご質問のカウント数になると思います。
回答ありがとうございます。
恐らく365環境ではないです。
タイトルの書き方が悪かったかもしれません。
あくまで、同じ商品の内容で購入している人物が何人いるかをカウントしたいということです。
fujillinさんに回答いただいた、365環境ではない場合のやり方でできるのでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
エクセルについてです。 ランダムに1から100までの数値が入力されているセルがあります。この中から1
Excel(エクセル)
-
エクセル 条件で表示の仕方を変える
Excel(エクセル)
-
エクセルであるセル番地の内容を知りたい
Excel(エクセル)
-
4
ExcelでVlookupがうまくいきません、どうしてでしょうか
Excel(エクセル)
-
5
エクセル シート間での 複数の条件でデーターを表示させたい
Excel(エクセル)
-
6
excelで大量の数字の変換
Excel(エクセル)
-
7
Excelで「1,2,3,4,5」を「1-5」とまとめることはできますか?
Excel(エクセル)
-
8
excel 同じ人と何回仕事をしたか知りたい。
Excel(エクセル)
-
9
Excelで複数のシートの合計を別シートに反映させたいのですが、合計のシートが他のシートとは表が違う
Excel(エクセル)
-
10
初めまして。 日商PC 3級のExcelの勉強しています。 わからない所があります。 画像の通り、数
Excel(エクセル)
-
11
【Excel/関数/IF関数】連続した条件に対しての処理
Excel(エクセル)
-
12
【計算量Log n】僕は実際の面接でソートの計算量を聞かれて、log nですかねと言ったら「は?」と
Excel(エクセル)
-
13
(Excel)最小限のデータ入力で別シートに転記しリストを作成したい。
Excel(エクセル)
-
14
Excelにて年間の当番表作成したい
Excel(エクセル)
-
15
Excel関数について 下記の業務をもっと効率よく出来る関数がないか悩んでます(´;Д;`) ※質屋
Excel(エクセル)
-
16
エクセルでランク順に別シートへ並べ替えるには
Excel(エクセル)
-
17
エクセル フィルタをかけたシート間のコピー&ペースト
Excel(エクセル)
-
18
エクセルの式の連動がうまくいきません
Excel(エクセル)
-
19
セル内の重複値を省く方法を教えて下さい
Excel(エクセル)
-
20
エクセルの関数で教えてください。
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
このカテゴリの人気Q&Aランキング
-
4
エクセルのセル内の余白の設定...
-
5
エクセル: セルの枠を超えて表示
-
6
あるセルに特定の文字列を打つ...
-
7
エクセルで、変な矢印がでて、...
-
8
Excelで隣のセルと同じ内容に列...
-
9
EXCELで式からグラフを描くには?
-
10
エクセルで数式を入れても値が...
-
11
エクセルである行以下全部を削...
-
12
エクセルウィンドウのサイズ変...
-
13
TEXT関数(負の値)を集計のた...
-
14
エクセルで作った新しいウイン...
-
15
Excel で下線が消えてしまうの...
-
16
エクセル:シート名を手入力で...
-
17
Excel に貼り付けた図形が、保...
-
18
EXCELで2つの数値のうち大きい...
-
19
EXCELで高さ0で隠れた行の素早...
-
20
EXCELで2列を参照し、重複する...
おすすめ情報
公式facebook
公式twitter
手入力で記載しましたが、
アイスとチョコの組み合わせは何人が購入しているか をカウントしたいということです。。
なので、これは2つ購入したパターンですが、3つ購入したパターンや3つ購入したパターンもできれば最高です。