Qlik Trainingブログ

  • データ準備
2021.06.30

Where句で必要なデータだけ取り込みます!

Where句で必要なデータだけ取り込みます!

アプリに全てのデータを取り込む必要はないな…という時ありませんか?
そんな時はWhere句で条件を指定して必要なデータだけ取り込みましょう!

データ ロード エディタでLOAD文内にWhere句を記述して、
取り込むデータを制御する方法をご紹介します。

目次

※本記事は バージョン「May 2021」の[SaaS]で作成しています。

Where句の基本

Where句は以下のように記述します。

LOAD 項目名
FROM テーブル
Where 条件式 ;

LOAD文で読み込むテーブル内のレコードに対して、Where句の条件式で評価します。
評価結果が真(true)のレコードのみが取り込まれます。

なお、LOAD文内のWhere句では、Qlik製品の数式記述方法で条件式を記述する必要があり、
Qlik製品の関数しか利用できないことに注意が必要です。

Where句の記述例

以下のデータを例に、Where句の記述例をご紹介します。
▼データ例

商品コード 売上
2019 A001 100
2019 A002 200
2019 B001 300
2020 A001 200
2020 A002 150
2020 B001 200
2021 A001 300
2021 A002 100
2021 B001 150


■2021年のデータのみを取得したい
以下のように記述します。

LOAD
年,
商品コード,
売上
FROM [lib://DataFiles/KKA_TEST.xlsx]
(ooxml, embedded labels, table is Sheet1)
Where 年 = 2021;

以下のデータが取り込まれます。

商品コード 売上
2021 A001 300
2021 A002 100
2021 B001 150


■2020年以降のデータのみを取得したい
Where句の条件式に不等号を利用します。

LOAD
年,
商品コード,
売上
FROM [lib://DataFiles/KKA_TEST.xlsx]
(ooxml, embedded labels, table is Sheet1)
Where 年 >= 2020;

以下のデータが取り込まれます。

商品コード 売上
2020 A001 200
2020 A002 150
2020 B001 200
2021 A001 300
2021 A002 100
2021 B001 150


■2019年の商品コードB001のデータのみを取得したい
and演算子で複数の条件を指定します。

LOAD
年,
商品コード,
売上
FROM [lib://DataFiles/KKA_TEST.xlsx]
(ooxml, embedded labels, table is Sheet1)
Where 年 = 2019 and 商品コード = 'B001';

以下のデータが取り込まれます。

商品コード 売上
2019 B001 300


■商品コードが「A」で始まる商品コードのデータのみを取得したい
条件式でワイルドカードを記述することでできます。
ワイルドカードを利用する場合、like演算子を利用します。

LOAD
年,
商品コード,
売上
FROM [lib://DataFiles/KKA_TEST.xlsx]
(ooxml, embedded labels, table is Sheet1)
Where 商品コード like 'A*';

以下のデータが取り込まれます。

商品コード 売上
2019 A001 100
2019 A002 200
2020 A001 200
2020 A002 150
2021 A001 300
2021 A002 100


■商品コードが「A001」「B001」のデータを取得したい
今回のデータ例の場合、記述方法は複数あります。
以下3つの方法をご紹介します。

・like演算子を利用して、「001」で終わるものを取得する

LOAD
年,
商品コード,
売上
FROM [lib://DataFiles/KKA_TEST.xlsx]
(ooxml, embedded labels, table is Sheet1)
Where 商品コード like '*001';

・or演算子を利用して、複数条件を指定する

LOAD
年,
商品コード,
売上
FROM [lib://DataFiles/KKA_TEST.xlsx]
(ooxml, embedded labels, table is Sheet1)
Where 商品コード = 'A001' or 商品コード = 'B001';

・Match関数を使用して値が返ったものを取得する

LOAD
年,
商品コード,
売上
FROM [lib://DataFiles/KKA_TEST.xlsx]
(ooxml, embedded labels, table is Sheet1)
Where Match(商品コード,'A001','B001');

Match関数の演算結果が1以上の場合はTrueとなり、該当するレコードのみを
取得します。この方法は、SQL文のIN句に似ています。

※Match関数について
 Match関数は、第一引数に対象の項目名を指定し、第二引数以降に指定した検索値に
 該当する項目値があった場合に、第二引数以降の位置を返します。
    例)Match( M, 'Jan','Feb','Mar')
     M = Feb のとき 2 を返します。
     M = Mar のとき 3 を返します。
     M = Apr または jan のとき 0 を返します。
      ※Match関数は大文字/小文字を区別します。
 Match関数は特定の文字列の検索になりますが、WildMatch関数でワイルドカードを
 使用することもできます。この2つの関数は、弊社サポート担当者が動画コンテンツ
 「BI学校」で分かりやすく解説しています。(動画タイトル:Match関数とWildMatch関数)

 気になる方はぜひチェックしてください!
   AWSCアカウント登録方法はこちら
   BI学校(動画コンテンツ)の一覧や視聴方法はこちら

上記いずれの方法でも、以下のデータが取り込まれます。

商品コード 売上
2019 A001 100
2019 B001 300
2020 A001 200
2020 B001 200
2021 A001 300
2021 B001 150

さいごに

上記でご紹介した例はほんの一例です…!工夫して条件式を記述することで、
様々な条件で取り込むデータを制限することができます。
アプリに不要なデータを取り込まないことはパフォーマンス改善にもつながります。
Where句でデータ取り込みを制御して必要なデータを取り込むようにしてみませんか?

関連している記事

  • データ準備
2021.07.29

Date#とDateの違い

皆さんはデータを分析する時、必ずと言っていいほど日付データを扱われると思います。 その際に取り込んだ日付データが日付として扱えなかったことはありませんか?

  • データ準備
2021.06.15

Concatenate(連結)で分析しやすいデータに加工する!

JOINに引き続き、データ準備のテクニックをご紹介します。 今回はJOINと同じように複数テーブルを1つにまとめ、 分析しやすいデータに加工できる「Concatenate」(連結)についてです。

  • データ準備
2021.06.02

ビジネスロジックで洞察を活用しよう

「ビジネス ロジック」という機能はご存知ですか? ビジネスロジックは、拡張知能へデータモデル内のデータ項目の関係性や使用方法などを理解させるための設定機能で、準備タブのメニューにあります。

ページの先頭へ戻る