Alteryxで列にあるデータを列の項目にしたい

Alteryxで列にあるデータを列の項目にしたい

Clock Icon2018.06.21

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは。Alteryxサポートエンジニアとして勉強中のスズです。

このシリーズでは、Alteryxを触り始めた際に出てくる「こうしたいけどやり方が分からない」「どのツールを使えばいいか分からない」といった疑問を切り口として、Alteryxの機能をご紹介していきます。

今回のテーマは、「列にあるデータを列の項目にしたい」です。

列にあるデータを列の項目に変換したい

表

上の表では、「顧客」「商品カテゴリー」「数量」という項目が並んでいます。
この表の「商品カテゴリー」にある「ノート」などのデータを列の項目に変換します。また、「数量」をデータとして配置するようにします。

列を変換するため、[Transform]→[Cross Tab]を使用します。
Cross Tabツールの設定画面にて、[Group Data by these Values]は「顧客」にチェックし、「顧客」でグループ化します。

Cross Tabの設定

[New Columns Headers]には、列の項目になる「商品カテゴリー」を選択します。また列に入れるデータとして、[Values for New Columns]に「数量」を選択します。
[Method for Aggregating Values]には、値の合計を出力する「Sum」を選択します。今回はそれぞれ値が1つしかないため、「数量」に表示されている値がそのまま使用されます。

Cross Tabの設定

実行して結果を確認。

変換結果

「ノート」などが列の項目となり、「数量」がデータとして配置されていることが確認できました。

[Method for Aggregating Values]のオプション

[Method for Aggregating Values]で選択できるオプションは、対象のデータが文字列が数値かによって異なります。 Alteryxのヘルプにある内容をご紹介いたしします。

文字列データのオプション:

Concatenate Separatorフィールドで指定された区切り文字を使用して値を区切ります。
First 最初に見つかった値を表示します。
Last 最後に見つかった値を表示します。

数値データのオプション:

Sum 値を合計します。
Average 値の平均を計算します。
Count (without Nulls) Null値を除く値の数をカウントします。
Count (with Nulls) Null値を含む値の数をカウントします。
Percent Row 行の値に基づいて割合(%)を計算します。
Percent Column 列の値に基づいて割合(%)を計算します。
Total Column 全ての値を合計します。
Total Row 値の合計を含む新しい行を追加します。

文字列のデータでConcatenateを指定してみた

今度は文字列のデータを用意して、Concatenateを試してみました。

表

上の画像のファイルでは、同じ顧客と商品カテゴリーで複数の商品を買っているケースがあります。
このファイルに対して、Cross Tabツールにて以下の通り設定します。

  • Group Data by these Values: 顧客
  • New Column Headers: 商品カテゴリー
  • Values for New Columns: 商品
  • Method for Aggregating Values: Concatenate
  • Separatore: , (カンマ)

Cross Tabの設定

実行して結果を確認。

変換結果

1人の顧客と1つの商品カテゴリーに対して複数の商品がある場合、カンマを使用して1つのマスに商品が入力されました。

最後に

今回はCross Tabツールを使用してデータを列の項目に変換する方法をご紹介しました。今後もAlteryxの機能をご紹介していきます。

Alteryxの導入なら、クラスメソッドにおまかせください

日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。

alteryx_960x400

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.