Qlik Senseで重複行を削除してロードする_Load Distinct
更新日:2023年9月26日
下記のようなデータがあった際に、重複している値や行を削除して一意のデータとしてQlik Senseにロードしたい時は「Load Distinct」で簡単に重複行を削除できます。
例)Load のあとに「Distinct」を付けるだけです。
重複行を削除したいケースは様々にあると思いますが、今回遭遇したのは次のようなケースでした。
例えば、データ分析をする時にマスタデータが揃っていないことがよくあります。そもそもデータベース化されていないExcelのリストなどを分析する場合や、マスタが整備されていない場合などです。下記のようなExcel表から「学部学科マスタ」を整備しようとしたのですが、手動だと面倒だったので重複行を削除できないか調べてみたところ「Load Distinct」が見つかりました。
上図のABCD列が元のデータです。これをGH列のように重複行を削除して「学部学科マスタ」としてテーブルにするような感じです。
先のサンプル画像にあるように、下記のロードスクリプトでOKでした。
Load Distinct
学部,
学科
FROM [lib://DataFiles/学生リスト.xlsx]
(ooxml, embedded labels, table is Sheet1);
ロードしたテーブルはそのままQlik Senseアプリ内でマスタテーブルのように使うこともできますし、今回の私の場合は「Store」で、CSVファイルに出力してマスタデータとして扱えるようしておきました。
また、重複行の多いデータから単純に重複行を削除するような場合は、1行の各項目の値がすべて同じ値の場合に削除するようなこともできます。先のデータを例に、すべての項目をDistinctでロードすれば可能です。
Load Distinct
学部,
学科,
学籍番号,
氏名
FROM [lib://DataFiles/学生リスト.xlsx]
(ooxml, embedded labels, table is Sheet1);
各項目を指定する代わりに「*」ですべての項目を指定する方法もあります。
Load Distinct
*
FROM [lib://DataFiles/学生リスト.xlsx]
(ooxml, embedded labels, table is Sheet1);
今回はQlik Senseの「Load Distinct」で重複行を削除する方法でした。
Comments