Community Spring Cleaning week is here! Join your fellow Maveryx in digging through your old posts and marking comments on them as solved. Learn more here!
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万件を超えたあたりから動かなくなったので

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

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