CRMAでは、ディメンションの順位付けはデフォルトでアルファベットまたは番号に基づいて行われます。しかし、ディメンションが日本語の場合、希望する順序にならないことがよくあります。例えば、以下のチャートでは、曜日の順序で来客数を表示したい場合、デフォルトでは期待通りに設定できないことがあります
このブログでは、CRMAでチャートの並び替えをカスタマイズする方法を3つご紹介します。
1. 系列の表示ラベルに番号をつけます
1.1
順序を決定した後、その順序を反映させた列を作成するために、新しいCSVファイルを作成し、ディメンション値の前に順序を示す列を追加します。
例えば、今回の例では、「曜日」列の隣に、値の先頭に順序番号を付けた「曜日」列を作成し、それをCSVとして保存します。
※順序を付ける方法について、値の数が少ない場合は、レシピの変換ノードで「置換」機能を利用することで実現することも可能です。
1.2 レシピで2つのデータセットを結合して出力します
結合ノードで「列」の画面で、共通キー項目は1つだけ残して保存すれば十分です。もう1つの共通キー項目のチェックをはずしてください。
出力ノードを利用してデータセットを出力します。
1.3 チャートの作成
チャートを作成する際、番号が付いている列を選択することで、希望する順序に並び替えが適用されます。
しかし、ラベルに番号が表示されることを気にされるユーザーもいらっしゃいます。その場合、次のステップを追加することで番号を隠すことが可能です。
Analytics Studioのホーム画面に戻って、データセットをレンズとして開きます。
以下のスクリーンショットの通りに、レンズから「項目パネルを表示」をクリックします。
番号をついている列の「値を編集」をクリックします。
値の鉛筆のマークをクリックし、値から番号を削除します。この処理により、表示ラベルは変更されますが、実際の値には番号が残ったままです。
ダッシュボードに戻り、画面をリロードしてください。
以下の図のように、グラフの表示ラベルから番号がなくなりますが、並び替えの順序は希望通りに維持されています。
2.順序の列を作成し、それを使用してディメンションを順位付けします。
2.1
方法1と同じですが、以下のようにCSVを作成し、レシピで結合し、出力します。
注意点があります。
順番の列は数値として作成されていますが、アップロード時にはデータ型を手動で「ディメンション」に設定してください。
2.2
横棒グラフで「順番」と「曜日」の2つの列を選択します。「順番」の列を第一位に設定してください。その後、「順番」の列に対して「昇順に並び替え」を適用します。これにより、以下の図のように、曜日が希望する順序で表示されます。
3. SAQLを利用し、順序を設定します。
最後の方法として、列を追加する必要はありません。元のデータを利用し、作成したチャートのSAQLを改修することで、順序を定義することが可能です。
順序を定義する列(SortOrder)を作成します。
when 'Column1' == "火" then 2
when 'Column1' == "水" then 3
when 'Column1' == "木" then 4
when 'Column1' == "金" then 5
when 'Column1' == "土" then 6
when 'Column1' == "日" then 7 end as 'SortOrder';
以下のコードは、このチャートを列「SortOrder」の昇順に基づいて並び替えるものです。
q = order q by 'SortOrder' asc;
最後に、「クエリを実行」をクリックして、テーブル内容が更新されています。
「更新」をクリックします。
但し、「SortOrder」も一緒に表示されていますので、チャートの編集画面に戻って、列「SortOrder」を非表示にします。
SAQLを改修した結果、列名が「A」になってしまう場合があります。
気になる方は、「列の名前を変更」機能を利用して、適切な列名に更新してください。