Tabeleau Prep の「新しい行」でデータをn倍する
概要
Tableau Prepを使って「データを増やす」方法を考えたことがあったので、そのメモです。
どういうケースかというと、例えば以下のようなデータがあった時に、各行を [N] 列に入力している値の数だけ、複製したいような場合です。
1行目のデータだと同じデータを30行作りたい、2行目は20行、3行目は50行・・という感じ。
Tableau Prep を使う場合は、「新しい行」という機能が使えそうです。その名のとおり、元データにはない行を生成できる機能です。
ただ、「新しい行」には、直接任意の値を指定してその分のデータを生成するようなオプションはありません。
そこで、今回はダミーの [開始日] と [終了日] という2つの日付フィールドを作成し、「新しい行」でその2つの日付の範囲を埋めるようなかたちで、データをn倍させてみました。
やりたいことのイメージは、ヘルプの「例2」の図が近いです。
ヘルプの例では新しい行の値をNullにしていますが、新しい行の値を「前の行からコピー」するというオプションもあるので、今回はこちらを利用していきます。
手順
具体的な手順は、以下のとおりです。
1)Tableau Prep Builderに対象データを読み込ませます。
2)次にダミーの [開始日] を作成します。開始日はいつでもよいのですが、ここでは「TODAY()」を使用しました。
3)ダミーの [終了日] を作成します。終了日を「開始日 + [N]日 - 1日」で計算するのがポイント。
DATE(DATEADD('day',[N]-1,[開始日]))
4)「新しい行」ステップを追加し、キャプチャのように設定します。
[開始日] ~ [終了日] の範囲で新しい行を生成することで、[N] 列の値分、データが複製される、という寸法です。
([終了日] を [開始日] の [N]-1 日後として計算しているので。)
5)これで完成です。[行ID] ごとの行数を確認すると、各行が [N] 列に入力した値の分、生成されているのがわかります。
まとめ
データをn倍するにあたって、Tableau Prep の「新しい行」を利用してみました。ポイントはダミーの [開始日] と [終了日] を作成することくらい。思ったより簡単にデータを増やすことができました。
この記事が気に入ったらサポートをしてみませんか?