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

2018.07.13

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

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

前回は二重になっている列の項目名をデータにするというテーマで記事を書きましたが、今回は列の項目名が二重ではなく三重の場合の処理を考えてみます。

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

ワークフローの概要

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

  1. Filterツールでデータを分類
  2. 項目名のデータの移動
    1. Record IDツールで識別子を割り当て
    2. Transposeツールでデータを移動
    3. Cross Tabツールでデータを移動
  3. 項目名以外のデータの移動
    1. Transposeツールでデータを移動
  4. Joinツールでデータを結合

という処理を行います。

ワークフローの詳細

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

まず、項目名のデータの処理を行っていきます。

[Prearation]->[Filter]を追加します。「Category A」「Type A」「Item A」がある行の左端「F1」列はnullになっています。これを利用して、Filterツールの[Basic filter]に「F1 is null」を設定し、データを項目名と項目名以外に分類します。

「Category」「Type」「Item」を識別するため、[Preparation]->[Record ID]を追加し、Filterツールの「T」と接続します。「RecordID」列が追加され、数字が割り当てられました。

[Transform]->[Transpose]を追加します。[Key Fields]には「Record ID」を選択、[Data Fields]には項目名が含まれている「F2」から「F9」を選択します。これで、「Record ID」列には「1」など、「Name」列には「F2」など、「Value」列には「Category A」などが表示されるようになりました。

元の表と比較してみます。元の表で「Type A」「Type B」が出力されていた行は、「RecordID」列が「2」になっています。

また、「Name」列は元の表の列にあたる部分を表しています。「F2」の場合は「Category A」「Type A」「Item A」というように、元の表で同じ列だった項目名に同じ「Name」が割り当てられています。のちほど項目名以外のデータの処理を行う際も、同じ列のデータに同じ「Name」が割り当てられるよう処理します。

続いて、[Transform]->[Cross Tab]を追加します。[Group Data by these Values]は「Name」を選択、[New Column Headers]には「RecordID」、[Values for New Columns]には「Value」を選択します。「Name」列でグループ化することで、元の表で同じ列だった項目名を一行に並べることができました。

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

Filterツールの「F」には、項目名以外のデータのみ出力されています。

Transposeツールを追加し、Filterツールの「F」と接続します。[Key Fields]には「F1」を、[Data Fields]には「F2」から「F9」を選択します。これで、「F1」列には「Jan」など、「Name」列には「F2」など、「Value」列には「100」などが表示されるようになりました。

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

Joinツールを追加して、2つのデータを結合します。どちらのデータも「Name」列で識別できるようになっていますので、[Join by Specific Fields]を選択して「Name」で結合します。また、2つある「Name」のうち1つを削除。列の名前をそれぞれ「Month」「Category」「Type」「Item」に変更して表示を整えます。

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

列の項目名が四重の場合

せっかくなので、列の項目名が四重になっている表を用意して、同じワークフローを試してみました。

下のような表を用意しました。「Option」という項目が増えています。

項目名が増えていますので、Joinツールでは列の並べ替えや列の名前の変更を行っています。

項目名が四重になっていても対応できました。

最後に

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

Alteryxロードショーとワークショップを開催します

2018年7月26日(木)にAlteryxロードショーとワークショップを開催します。すでにAlteryxをご活用中のお客様はもちろん、導入を検討している方、国内外におけるデータ分析の最新情報を知りたい方にもおすすめです。ぜひ、この機会にAlteryxの利便性を実感してください。

alteryx_960x400