# データの変換

データ ロード エディタ でさまざまなテクニックを使って、データを変換および操作できます。

データ操作のメリットの 1 つは、ファイルからデータのサブセットのみをロードするという選択ができることです。つまり、テーブルからいくつかの列だけを選択してより効率的にデータを処理できます。また、データを複数回に渡りロードして、生データをいくつかの新しい論理テーブルに分化することもできます。複数のソースからデータをロードして、アプリケーション内で 1 つのテーブルに結合することもできます。

このトピックでは、まず Resident LOAD を使って、次に Preceding LOAD を使って、いくつかの基本的なデータ変換を実行します。

## Resident LOAD

Resident ソース修飾子を LOAD ステートメントで使用すると、以前ロードしたテーブルからデータをロードできます。これは、日付や数値の処理など、スクリプト関数を使用するオプションがない SELECT ステートメントを使用してロードされたデータで計算を行う場合にも役立ちます。

この例では、Sales\_Buckets という新しいテーブルを作成し、Table1Resident LOAD を使って からデータをロードします。Sales\_Buckets テーブルで、quantity\_threshold という変数を作成し、Where ステートメントを使ってしきい値と一致するデータのみをロードします。

1. Scripting Tutorial アプリケーションで [データ ロード エディター] を開きます。
2. Sales タブをクリックします。
3. 次の内容をスクリプトの最後に追加します。
   ```
   SET quantity_threshold = 12000;

   					Sales_Buckets:
   					LOAD
   					"Sales Qty" as "High_Quantity",
   					"Item Description" as "Item",
   					"Customer Number" as "Customer"
   					Resident Table1
   					Where ("Sales Qty" > $(quantity_threshold));
   				
   ```

   これで、スクリプトは次のようになります。

   Sales\_Buckets という新しいテーブルを作成するスクリプトが表示されたロード スクリプト ウィンドウ

   Sales\_Buckets という新しいテーブルを作成するスクリプトが表示されたロード スクリプト ウィンドウ

   Sales\_BucketsSales\_Buckets という新しいテーブルを作成するスクリプトが表示されたロード スクリプト ウィンドウ ![Sales_Buckets という新しいテーブルを作成するスクリプトが表示されたロード スクリプト ウィンドウ。](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/tutorial-load_resident_threshold-cloud-rev.png)
4. [データのロード] をクリックします。
5. [データ モデル ビューア] を開きます。 指定した項目と設定したしきい値に従ってロードされたデータを使用して Sales\_Buckets という新しいテーブルが作成されたことを確認できます。

   データ モデル ビューアー内の Sales\_Buckets テーブル

   データ モデル ビューアー内の Sales\_Buckets テーブル

   データ モデル ビューアー内の Sales\_BucketsSales\_Buckets テーブル ![データ モデル ビューア内の Sales_Buckets テーブル。](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/ui_sales_buckets_table.png)
6. アプリケーションのテーブルにデータを追加します。[Item] および [Customer] を軸として追加します。High\_Quantity で集計されるメジャーとして Count を追加し、再度 Sumで集計します。続いて、次の数式を指定した新しい列をメジャーとして追加します。
   ```
   = Sum(High_Quantity) / Count(High_Quantity)
   ```

   数式を指定した新しいメジャー

   数式を指定した新しいメジャー

   数式を指定した新しいメジャー ![数式を指定した新しいメジャー。](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/tutorial_load-resident-chart-expression.png)

   テーブルを見ると、たとえば、Customer 10025737 から High Top Dried Mushrooms の大量の注文が 4 回あり、平均数量は 14,800 であることがわかります。項目でデータのソートを実行するには、[完了] をクリックして [編集] モードを終了します。

   大量に注文した顧客を示すテーブル

   大量に注文した顧客を示すテーブル

   大量に注文した顧客を示すテーブル ![大量に注文した顧客を示すテーブル。](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/tutorial-load-resident-threshold-table.png)
7. これで、この例を完了しました。quantity\_threshold 変数と Sales\_Buckets テーブルのスクリプトをコメント アウトしてください。

   スクリプトの最後は次のようになります。

   コメント アウトされたスクリプト

   コメント アウトされたスクリプト

   コメント アウトされたスクリプト ![コメント アウトされたスクリプト。](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/tutorial-sales_buckets_commented-cloud.png)

## 先行する LOAD

先行する LOAD を使用すると、変換を実行してフィルターを適用し、1 つのパスでデータをロードできます。基本的に、これは以下の LOAD または LOAD ステートメントからロードする SELECT ステートメントのことで、通常指定する From や Resident などのソース修飾子を指定せずに実行します。この方法では、LOAD ステートメントをいくつでもスタックできます。ステートメントの評価は、最下部のステートメントから順番に、上に向かって実行されます。

このチュートリアルで前述したように、LOAD および SELECT ステートメントを使用して、データをアプリケーションにロードできます。これらの各ステートメントにより、内部テーブルが生成されます。LOAD はファイルまたはインライン テーブルからデータをロードするために使用され、SELECT はデータベースからデータをロードするために使用されます。このチュートリアルでは、ファイルからロードしたデータを使用しました。この例では、インライン テーブルを使用します。ただし、SELECT ステートメントの前に先行する LOAD を使用し、データを操作できる点は注目に値します。基本は、今回説明する LOAD の使用と同じです。

この例は、このチュートリアルでロードしているデータには関連していません。先行する LOAD がどのように見えるかを示す目的のみに使用されています。データ ロード エディターで、Transactions というインライン テーブルを作成します。日付の変換は先行する LOAD で実行され、 transaction\_date という新しい項目が作成されます。この項目は sale\_date 項目から作成されます。

1. 新しいアプリケーションを作成し、ReformatDate という名前を付けます。
2. データ ロード エディターを開き、TransactionData という新しいタブを作成します。
3. 次のスクリプトを追加します。
   ```
   Transactions: 
   Load *,
   Date(Date#(sale_date,'YYYYMMDD'),'DD/MM/YYYY') as transaction_date;
   Load * Inline [ transaction_id, sale_date, transaction_amount, transaction_quantity, customer_id, size, color_code 
   3750, 20180830, 23.56, 2, 2038593, L, Red 
   3751, 20180907, 556.31, 6, 203521, m, orange 
   3752, 20180916, 5.75, 1, 5646471, S, blue 
   3753, 20180922, 125.00, 7, 3036491, l, Black 
   3754, 20180922, 484.21, 13, 049681, xs, Red 
   3756, 20180922, 59.18, 2, 2038593, M, Blue 
   3757, 20180923, 177.42, 21, 203521, XL, Black ];
   ```

   これで、スクリプトは次のようになります。

   先行する LOAD を記述したロード スクリプト

   先行する LOAD を記述したロード スクリプト

   先行する LOAD を記述したロード スクリプト ![先行する LOAD を記述したロード スクリプト。](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/tutorial_preceding_load_cloud-rev.png)
4. [データのロード] をクリックします。
5. [データ モデル ビューア] を開きます。 Transactions テーブルを選択して展開します。先行する LOAD ステートメントで \* で指定されたとおり、すべての項目がロードされたことを確認できます。transaction\_date という新しい項目が作成されました。この項目は、日付の書式が再設定されています。

   データ モデル ビューア内の transaction\_date という新しい項目

   データ モデル ビューア内の transaction\_date という新しい項目

   データ モデル ビューア内の transaction\_datetransaction\_date という新しい項目 ![データ モデル ビューア内の transaction_date という新しい項目。](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/ui_transaction_date.png)