Free Trial

ディスカッション

答えを見つけ、質問し、Alteryx の専門知識を共有してください。
解決済み

複数カラムのクロス集計

espessco
メテオール

◆INデータのレイアウト

顧客NOとその属性についてのトランザクションがあります。(参照:sample.xlsxのINシート)

実際のデータは300万行、15カラム程度あります。

顧客NOペット名顧客性別顧客年代顧客年収顧客職業ペット数
100パンダ男性20200-400万円会社員2
100トラ男性20200-400万円会社員1
100ネコ男性20200-400万円会社員1
200ネコ女性501000万円以上会社員1
300イヌ男性401000万円以上社長5
300トラ男性401000万円以上社長3
300ネコ男性401000万円以上社長2
300パンダ男性401000万円以上社長1

 

◆欲しいOUTPUT

ペット名に対する各顧客属性の割合(参照:sample.xlsxのOUTシート)

ペット名男性%女性%20代%40代%50代%200-400万円%1000万円以上%会社員%社長%
パンダ10005050050505050
イヌ1000010000100050
ネコ663333333333666633
トラ10005050050505050

 

これまで試したのは、クロスタブで各項目を一つ一つ集計していました。

とても非効率的なのでより良い方法があれば教えてください!

espessco_1-1647496617337.png

 

3件の返信3
gawa
15 - Aurora
15 - Aurora

@espessco さん

ペット名を軸に縦持ちデータに変換してから、項目ごとにバッチマクロで集計し、最後にクロスタブ、という方法でやってみました。言葉で説明するのは難しいところがあるので、添付のワークフローを実行いただけると、分かりやすいかと思います。

gawa_0-1647504540665.png

gawa_1-1647504585081.png

 

AkimasaKajitani
17 - Castor
17 - Castor

@espessco さん

 

マクロを使わないバージョンを作りました。

一旦すべて縦持ちにした後に、各項目ごとのカウント、各カテゴリごとのカウントをとって結合後、割合にしてから横持ちにしています。

 

AkimasaKajitani_1-1647525042113.png

 

詳細は添付ファイルをご覧ください。

ちなみに、ペット数を合計するのではなく、単にレコードをカウントしていますが、良いでしょうか?(出力結果に合わせています)。

 

 

espessco
メテオール

@gawa さん
@AkimasaKajitani さん
お忙しい中ありがとうございます!!
両方の方法でトライしましたがいけました!

ただ、トランザクションが3000万件を超えたあたりから動かなくなったので

間にサンプリングを入れて実行しました。

とても悩んでいたところでしたので、大変助かりました!ありがとうございました。