.png)
すべてのクライアント ID と購入された製品を含むトランザクション テーブルがあります。1 人のクライアントが複数の製品を購入する可能性があり、それらはスタンドアロン製品またはアドオンである可能性があります。
現在、どのアドオンがどの製品で最も一般的であるかを確認するためにクロスセル テーブルを作成しようとしていますが、異なる行で一致する複数の条件 (クライアント ID、製品、アドオン) をカウントする方法がわかりません。
日付テーブルは次のようになります。
clientid product ... ...
10 prod 1 ...
11 prod 2
13 prod 1
10 addon 1
... ...
取得したい出力は次のとおりです。
x addon 1 addon 2 addon 3 ....
prod 1 # # #
prod 2
prod 3
...
したがって、サンプルデータテーブルを使用すると、クロスセルテーブルでは、prod 1 と addon 1 で 1 がカウントされます (clientid = 10 が両方の製品を購入したため)。
私が抱えている問題は、同じクライアント ID が 2 行以上 (購入された製品とアドオン) の条件に一致する場合をカウントすることです。データ テーブルには約 30 万のエントリがあるため、手動で行うことはできません。
どうすればそれができるか誰か知っていますか?
ご協力ありがとうございました!
答え1
これを 2 つのステップで実行します。
- 表 A: データを選択します
"insert->Pivot Table"
。行フィールドにクライアント ID を入力し、列と値フィールドの両方に「製品」を入力します。
これで、行に固有の顧客と、各顧客が購入した製品とアドオンを含むテーブルができました。
- テーブル B 次に、行に製品名、列にアドオン名を含む 2 番目のテーブルを作成します。テーブルにデータを入力するには、sumproduct() を使用して、製品 n の列とアドオン i の列を乗算します。
残念ながら、テーブル B の数式で参照するテーブル A の列を自動的に選択する優れた方法は思いつきません。テーブル A にすべての製品があり、その後にすべてのアドオンがある場合、テーブル B の最初の列の各行で各製品を手動で選択し、ドラッグしてテーブル A から適切なアドオン列を自動入力することができます。ピボット テーブルの列はアルファベット順に並べ替えられているため、製品とアドオンの名前によってはこれが機能する可能性があります。それでも、すべての製品列を手動で選択する必要があります。