Alteryxで「データが存在する列のみ選択する」方法をご紹介したいと思います。
nullのデータしかないカラムをBasic Data Profile Tool(基本データプロファイルツール)を使って調べ、
そのカラムを除外するという方法です。
では早速やってみましょう!
サンプルデータ
Col_3とCol_5~Col_9は全レコードデータがnullです。全レコードデータがnullの列は自動で判定し除外したいです。
Basic Data Profileツールに接続
データをBasic Data Profileツールに繋いで実行してみます。
Basic Data Profileツールは名前の通り、データのプロファイル情報を取得できるツールです。
実行するとフィールドごとにメタデータ(データについてのデータ)が表示されました。
Name列がメタデータの種別、Valueがメタデータの値を表します。
例として年月日列の情報を見てみます。
MinimumとMaximumを見ると年月日列の最大値と最小値が確認できます。
→年月日列の最小値は2021-11-01、最大値は2021-11-14であることを知ることができます。
今回はデータが全てnullの列を知りたいので、Non-Nullsのデータを確認します。
→年月日はnullのレコードが1件もないのでNullsが0になっていますね。
各カラムのNullの件数を取得
Name=’Non-Nulls’のデータをフィルターします。Value=0ならそのカラムは全件nullということです。
除外対象カラムの名称置換
Non-NullsのValue=0のカラムは除外したいため、除外判定に使えるようFormulaツールで名称を置換します。
名称は何でもいいのですが、今回は「DELETE」にします。
カラムを除外する
まずDynamic Renameに元のデータと除外判定用に名称置換した列をつなぎ、
名称置換した列名に置き換えます。
「Take Field Names from Right Input Rows(右入力の行からフィールド名を取得)」で置き換えることができます。
Dynamic Select列名に「DELETE」を含む列以外を選択するよう数式を記載します。これで完成です。
実行するとデータの入った列のみが選択できました!
期待結果通り、Col_3とCol_5~Col_9は自動で除外されましたね!
【おわりに】
Basic Data Profileツールは今回紹介した以外にもいろいろな情報が取得できます。
データ型(文字列、数値列、日付列、空間オブジェクト)により取得できる情報が異なるので、
興味のある方は使ってみてください!