Alteryxで二重になっている列の項目名をデータにする

2018.07.10

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

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

今回は「二重になっている列の項目名をデータにする」というテーマで、処理の方法を考えてみます。

二重になっている列の項目名をデータにする

上の表では、「Category A」や「Type A」という項目名があります。上の表を下の表のように、項目名をデータにし、「Month」「Category」「Type」「Value」という列を作成する方法を考えてみます。

ワークフローの概要

今回使用するワークフローの概要です。Input Dataツールでデータを読み込んだのち、

  1. 項目名のデータの移動
    1. Sampleツールで項目名のデータを抽出
    2. Transposeツールでデータを移動
    3. Filterツールでデータを分類
    4. Joinツールでデータを結合
  2. 項目名以外のデータの移動
    1. Sampleツールで項目名以外のデータを抽出
    2. Transposeツールでデータを移動
  3. Joinツールで項目名と項目名以外のデータを結合

という処理を行います。

ワークフローの詳細

Input Dataツールでデータを読み込み、処理を追加していきます。「Category A」や「Type A」などはデータとして扱い、列の名前は「F1」などになっています。

[Preparation]->[Sample]を追加します。[First N Records]を選択、「N = 2」を設定して、上の2行にある「Category A」や「Type A」などを抽出します。

[Transform]->[Transpose]を追加します。[Data Fields]は、データがnullの「F1」を除き、「F2」から「F5」を選択します。実行後、「F2」などは「Name」列、「Category A」や「Type A」などは「Value」列になっています。

[Preparation]->[Filter]を追加します。[Basic filter]に「Value Contains Category」を設定し、「Category A」「Category B」と「Type A」「Type B」に分類します。

[Join]->[Join]を追加し、「Category A」「Category B」と「Type A」「Type B」に分類したデータを「Name」で結合します。また、分かりやすいように、2つある「Name」のうち1つを削除。列の名前を「Value」から「Category」と「Type」に変更します。

ここまでの処理で、項目名のデータを移動できました。続いて、項目名以外のデータを移動します。

Sampleツールを追加し、Input Dataツールと接続します。「Skip 1st N Records」を選択、「N = 2」を設定し、上の2行にある「Category A」や「Type A」などの項目名以外を抽出します。

Transposeツールを追加します。[Key Fields]に「F1」を選択、[Data Fields]に「F2」から「F5」を選択します。「F1」列は残り、「Name」列と「Value」列が追加されます。これにより、「F1」列には「Jan」など、「Name」列には「F2」など、「Value」列には「100」などが出力された状態になりました。

これで項目名のデータと、項目名以外のデータの準備ができました。

Joinツールを追加して、2つのデータを結合します。どちらのデータも「Name」列で識別できるようになっていますので、[Join by Specific Fields]を選択して「Name」で結合します。また、分かりやすいように、2つある「Name」のうち1つを削除、列の名前を「Month」に変更し、「Month」が左端になるよう移動します。

これで、「Month」列に「Jan」など、「Category」列に「Category A」など、「Type」列に「Type A」など、「Value」列には「100」などのデータが出力されるようになりました。

最後に

今回は二重になっている列の項目名をデータに移動する方法をご紹介しました。これからもAlteryxの機能をご紹介していきます。

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

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

alteryx_960x400