# インライン テーブルからデータを読み込む

スクリプトにデータを手入力して、インライン テーブルを定義します。

インライン テーブルは、ファイルおよびデータベースに接続するのではなく、スクリプトにデータを手入力して作成します。必要な構文を使用して、スクリプト テキストがインライン データとして解釈されることを示します。

基本インライン ロードを使うと、テーブルが作成され、データ項目とレコードが挿入されます。

## インライン ロードを使用する理由

インライン ロードはさまざまなユース ケースで役立ちます:

* 外部ソースに接続せずに、データの管理と編集を行う場合。

* データ モデルに既存データを補足する場合。例えば、ほぼデータベース ソースから派生するデータ モデルに、テーブルを追加することができます。

* 外部ソースからの継続的ロードを回避したいデータを追加する場合。これは、データ ソースは今後変更される可能性があるが、データ値は変わらないことがわかっている場合、時間の節約となります。

* 他のファイルからスクリプトにコンテンツをコピー & ペーストしやすくなります。例えば、ワープロ文書からの .csv ファイルまたはテーブルなどが考えられます。

* 迅速にコピー & ペーストできるテスト スクリプトを作成する場合。

## 基本構文の例

次のスクリプトには、単純なインライン ロードが含まれています。

```
MyTable:
Load * Inline [Country, Year, Sales
Argentina, 2014, 66295.03
Argentina, 2015, 140037.89
Austria, 2014, 54166.09
Austria, 2015, 182739.87
];
```

次の構文は、上記のインライン ロードに使用されます。

* Load \* Inline は、QlikView に対して、後続のインライン テーブルからすべての項目をロードするように指示します。

* MyTable: は、テーブルの名前を定義します。

* 角括弧はデータを囲みます。

* Load ステートメントの最初の行は、データ項目を定義します。

* カンマにより、データ項目とレコードが区切られます。

* セミコロンは、Load ステートメントを閉じます。

## 構文の概要

### テーブルの命名

ロードされた他のテーブルと同様、インライン テーブルに名前を追加できます。テーブル名の定義は任意です。

テーブルの名前の後に、コロンを挿入します。

### LOAD と inline ステートメント

LOAD スクリプト ステートメントを使用すると、インライン テーブルは inline 節とともにロードされます。inline 節は、エディターに手入力されたデータがテーブルの後続のテキストに含まれていることを示しています。特に指定しない限り、インライン テーブルは txt 形式を使用します。これは、区切り記号付きテキスト ファイルの構造と同様です。

LOAD ステートメントの詳細については、「[Load](https://help.qlik.com/ja-JP/qlikview/May2024/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptRegularStatements/Load.htm)」を参照してください。

### 囲み文字とデータ入力

inline 節を使って入力されたデータは、特殊文字で囲む必要があります。データの囲い込みに使用できる文字の組み合わせは次の通りです。

* 角括弧 [ ]:`[` また、`]`

* 二重引用符:`"` また、`"`

* 単一引用符 ' ':`'` また、`'`

* バックティック `:`` ` `` また、`` ` ``

囲み文字として選択した文字は、競合する文字を含むインライン データを読み込むのに有用です。例えば、データに角括弧で囲まれたレコードが含まれる場合、引用符かバックティックで囲むことができます。

その他の囲み文字の例については、「[例 - その他のデータ囲み文字](https://help.qlik.com/ja-JP/qlikview/May2024/Subsystems/Client/Content/QV_QlikView/Scripting/inline-loads-qv.htm#ExDataEnc)」を参照してください。

代わりのテーブル形式を指定しない限り (デフォルトは txt)、囲み文字の間のテキストはファイルのコンテンツと同様に解釈されます。そのため、テキスト ファイルで新しい行を挿入する場合と同様に、inline 節のテキストについても Enter キーを押します。

### インライン ロードの編集

インライン ロード ステートメントの終わりは、セミコロンで示されます。

### データの変換

変換のない単純なインライン ロードの場合、列の数は最初の行によって定義されます。次の例では、ロードされたテーブルに 3 つの列があります。`Product_ID`、`Supplier_Name`、および `Product_Category`。

```
Products:

Load * Inline [
Product_ID, Supplier_Name, Product_Category
1, Paracel, Home Decor
2, PageWave, Electronics
3, Talarian, Software
4, Userland, Appliances
];
```

同一のインライン テーブルで変換を実行し、列を新規作成することもできます。先行する Load を使用すると、同一テーブルにロードするのに複数の LOAD ステートメントを使用できます。

具体的な例については、「[例 - 変換付きのインライン ロード](https://help.qlik.com/ja-JP/qlikview/May2024/Subsystems/Client/Content/QV_QlikView/Scripting/inline-loads-qv.htm#ExTransform)」を参照してください。

### インライン ロードで形式仕様を構成する

ロードされた他のテーブルと同様、形式仕様項目を使用してインライン テーブルの形式指定を変更できます。形式仕様は括弧内に追加されます。データ囲み文字の後、LOAD ステートメントの終わりのセミコロンの前に追加する必要があります。追加できるカスタマイズには次のようなものがあります。

* 区切り文字をコンマから別の文字に変更する。例については、「[例 - その他の区切り文字](https://help.qlik.com/ja-JP/qlikview/May2024/Subsystems/Client/Content/QV_QlikView/Scripting/inline-loads-qv.htm#ExDelimiter)」を参照してください。

  参照： [Delimiter](https://help.qlik.com/ja-JP/qlikview/May2024/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptSpecifiers/delimiter.htm)

* テーブル列ヘッダーを省略する。例については、「[例 - 列ヘッダーの省略](https://help.qlik.com/ja-JP/qlikview/May2024/Subsystems/Client/Content/QV_QlikView/Scripting/inline-loads-qv.htm#ExOmitLabels)」を参照してください。

  参照： [Labels](https://help.qlik.com/ja-JP/qlikview/May2024/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptSpecifiers/labels.htm)

* 別のデータ形式を使用する (例えば、固定レコード形式など)。例については、「[例 - 別のデータ型のロード](https://help.qlik.com/ja-JP/qlikview/May2024/Subsystems/Client/Content/QV_QlikView/Scripting/inline-loads-qv.htm#ExChangeFormat)」を参照してください。

  参照： [テーブル形式](https://help.qlik.com/ja-JP/qlikview/May2024/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptSpecifiers/table-format.htm)

  情報メモすべての Table format オプションの一部は、インライン ロードでサポートされていません。

* 複数行コンテンツを許可する。例については、「[例 - 複数行コンテンツ](https://help.qlik.com/ja-JP/qlikview/May2024/Subsystems/Client/Content/QV_QlikView/Scripting/inline-loads-qv.htm#ExMultLine)」を参照してください。

  参照： [Quotes](https://help.qlik.com/ja-JP/qlikview/May2024/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptSpecifiers/quotes.htm)

同一テーブルで複数の形式仕様項目を使用するには、カンマで区切ります。例:`  (Delimiter is '|', no labels) `

形式仕様の詳細については、「[書式指定アイテム](https://help.qlik.com/ja-JP/qlikview/May2024/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptSpecifiers/format-specification-items.htm)」を参照してください。

### 演算子およびその他の節

さらに、インライン ロードは LOAD ステートメントであるため、LOAD ステートメントの他の引数をインライン ロードと組み合わせることができます。例えば、where または while 節を使って、行内のテキストに基づき特定の行をロードするかどうかを定義します。

同様に、テキスト コンテンツ自体の外に演算子を使用することもできます。演算子を使うと、インライン データの変換方法をカスタマイズすることも、特定のデータをロードするタイミングを定義することもできます。

具体的な例については、「[例 - 変換のための演算子と節](https://help.qlik.com/ja-JP/qlikview/May2024/Subsystems/Client/Content/QV_QlikView/Scripting/inline-loads-qv.htm#ExOpsAndClauses)」を参照してください。

## 例 - その他のデータ囲み文字

インライン ロードは、角括弧、引用符、バック ティックで囲むことができます。このセクションでは、例を挙げてこれについて説明します。詳細については、「[囲み文字とデータ入力](https://help.qlik.com/ja-JP/qlikview/May2024/Subsystems/Client/Content/QV_QlikView/Scripting/inline-loads-qv.htm#Enclosure)」を参照してください。

#### ロード スクリプトと結果

概要

この例では、インライン データを囲むためにバック ティックを使用する方法を示します。例のデータには、角括弧文字が含まれていますが、そのため LOAD ステートメントの囲み文字として角括弧は使用できません。

ロード スクリプト

```
DataTable:

Load * inline 
`
custom_property, date, amount
[11402], 1/1/2024, 92.99
[11403], 1/2/2024, 102.34
[11404], 1/3/2024, 50.26
[11405], 1/4/2024, 153.69
[11406], 1/5/2024, 75.62
`;
```

結果

* `custom_property`

* `date`

* `amount`

結果テーブル

| custom\_property | date | amount |
| --- | --- | --- |
| [11402] | 1/1/2024 | 92.99 |
| [11403] | 1/2/2024 | 102.34 |
| [11404] | 1/3/2024 | 50.26 |
| [11405] | 1/4/2024 | 153.69 |
| [11406] | 1/5/2024 | 75.62 |

## 例 - その他の区切り文字

カンマ以外の文字を使って、テーブルの列の値を区切ることができます。詳細については、「[インライン ロードで形式仕様を構成する](https://help.qlik.com/ja-JP/qlikview/May2024/Subsystems/Client/Content/QV_QlikView/Scripting/inline-loads-qv.htm#FormatSpec)」を参照してください。

#### ロード スクリプトと結果

概要

区切り文字は、テーブル内のデータにカンマが含まれている場合に交換できます。カンマが含まれていない場合、テーブル内の次の列に切り替える合図となります。

この例には、ロードするテーブルが 4 つ含まれています。次の通りです。

* ロードする 4 つのテーブル。次の通りです。

  * Table1: 区切り文字は縦棒 (パイプ)です。Phrase 列のデータにはカンマが含まれています。

  * Table2: 区切り文字はコロンです。

  * Table3: 区切り文字はバックスラッシュです。

  * Table4: テーブルは、キーボードで Tab キーを押すことで区切られます。このオプションは、ワード プロセッサーからテーブルをコピーして、スクリプトにペーストする際に有用です。

  Table1 は、代替区切り文字を使用する実際的なユース ケースを示しています。その他のテーブルには、別の区切り文字オプションが示されています。

ロード スクリプト

```
Table1:
LOAD * INLINE [
ID|Phrase
1 | 'The transaction was complete, but the order has not yet shipped.'
2 | 'We need to confirm the following details: sales rep number, order status, and shipping priority.'
] (Delimiter is '|');

Table2:
LOAD * INLINE [
Num1:Chr1
1:A
2:B ] (Delimiter is ':');

Table3:
LOAD * INLINE [
Num2\Chr2
1\A
2\B ] (Delimiter is \\);

Table4:
LOAD * INLINE [
Num3	Chr3
1	A
2	B ] (Delimiter is '\t');
```

結果

結果テーブル: Table1Table1

| ID | Phrase |
| --- | --- |
| 1 | The transaction was complete, but the order has not yet shipped. |
| 2 | We need to confirm the following details: sales rep number, order status, and shipping priority. |

結果テーブル: Table2Table2

| Num1 | Chr1 |
| --- | --- |
| 1 | A |
| 2 | B |

結果テーブル: Table3Table3

| Num2 | Chr2 |
| --- | --- |
| 1 | A |
| 2 | B |

結果テーブル: Table4Table4

| Num3 | Chr3 |
| --- | --- |
| 1 | A |
| 2 | B |

## 例 - 列ヘッダーの省略

形式仕様を編集して、列ヘッダーを定義せずにインライン テーブルをロードします。これは、labels 仕様を使って実行されます (値 no labels に設定する)。詳細については、「[インライン ロードで形式仕様を構成する](https://help.qlik.com/ja-JP/qlikview/May2024/Subsystems/Client/Content/QV_QlikView/Scripting/inline-loads-qv.htm#FormatSpec)」を参照してください。

列名を定義せずにテーブルをロードすると、システム定義の列名が自動的に使用されます。

#### ロード スクリプトと結果

概要

この例は、列名を定義せずにインライン テーブルをロードできる方法を示しています。

ロード スクリプト

```
Expenses:

Load * inline
[
1,Category1,40566.49
2,Category2,3504.54
3,Category3,593206.30
] (no labels);
```

結果

結果テーブル

| @1 | @2 | @3 |
| --- | --- | --- |
| 1 | Category1 | 40566.49 |
| 2 | Category2 | 3504.54 |
| 3 | Category3 | 593206.30 |

## 例 - 別のデータ型のロード

この例は、固定レコード形式にインライン テーブルをロードできる方法を示しています。「[インライン ロードで形式仕様を構成する](https://help.qlik.com/ja-JP/qlikview/May2024/Subsystems/Client/Content/QV_QlikView/Scripting/inline-loads-qv.htm#FormatSpec)」を参照してください。

#### ロード スクリプトと結果

概要

この例のスクリプトには、次の要素が含まれています。

* テーブル DataTable を定義するインライン ロード ステートメント。
* ロードするデータが固定レコード形式であることを示す fix (Table format 仕様の一部として) の使用。

ロード スクリプト

```
DataTable:
LOAD
"@1:4",
"@5:8",
"@9:12",
"@13:16"
INLINE [
a   b   c   d
1   2   3   4
x   y   z   w
] (fix, utf8, embedded labels);
```

結果

結果テーブル

| a | b | c | d |
| --- | --- | --- | --- |
| 1 | 2 | 3 | 4 |
| x | y | z | w |

## 例 - 複数行コンテンツ

この例は、複数行項目コンテンツをインライン テーブルに入力できる方法を示しています。「[インライン ロードで形式仕様を構成する](https://help.qlik.com/ja-JP/qlikview/May2024/Subsystems/Client/Content/QV_QlikView/Scripting/inline-loads-qv.htm#FormatSpec)」を参照してください。

#### ロード スクリプトと結果

概要

この例のスクリプトには、次の要素が含まれています。

* テーブル T1 を定義する単純なインライン ロード。

* 複数行コンテンツをサポートする Quotes 指定子 (値 msq とともに) の使用。

* フィートとインチで指定された長さの値。

* 二重引用符記号 (") は、複数行入力の終わりを示します。この例では、同じ記号がインチの値を示すのにも使用されています。これは、同じ LOAD ステートメントで両方を使用する必要がある場合の構文と結果の動作を示すためのものです。基本的に、" 記号を 2 つの連続する文字 ("") に入力した場合、コードが記号の単一テキスト インスタンスとして解釈されることを示します。

ロード スクリプト

```
T1:
Load *, recno() as ID inline [
Length
"1' 2""
22' 10"""
14' 8"  ] (msq);
```

結果

複数行を意図通りに表示するには、[プロパティ...] 構成で [複数行設定] を調整する必要があります。

結果テーブル

| ID | Length |
| --- | --- |
| 1 | 1' 2"<br><br>22' 10" |
| 2 | 14' 8" |

上のテーブルでは、ID 値が 1 のレコードに複数行コンテンツが含まれています。

## 例 - 変換付きのインライン ロード

これらの例は、インラインでロードされた項目に対して計算を実行し、データ モデルに新しい項目を作成する方法を示しています。

詳細については、「[データの変換](https://help.qlik.com/ja-JP/qlikview/May2024/Subsystems/Client/Content/QV_QlikView/Scripting/inline-loads-qv.htm#Transform)」を参照してください。

#### 例: 項目の単純な名前変更

ロード スクリプト

```
ORDERS:

Load Original as Updated,
* Inline
[
Original
ProductA
ProductB
ProductC
];
```

結果

結果テーブル

| Original | Updated |
| --- | --- |
| ProductA | ProductA |
| ProductB | ProductB |
| ProductC | ProductC |

#### 例: ID 項目の単純な挿入

概要

この例は、計算された項目を定義して、各 ID 値を手入力しなくても各データ行の ID を示すことができる方法を示しています。

ロード スクリプト

```
ORDERS:

Load RowNo() as ID,
* Inline
[
ProductName
A
B
C
D
E
];
```

結果

結果テーブル

| ID | ProductName |
| --- | --- |
| 1 | A |
| 2 | B |
| 3 | C |
| 4 | D |
| 5 | E |

#### 例: LOAD 変換を処理するためにステートメントを構成する

概要

この例では、単純な変換をインライン データに適用する方法をいくつか示しています。1 つまたは複数の LOAD ステートメントを使用し、異なる方法で構文を構成することにより、変換により元の項目が置換されるか、それとも元の項目と新規の項目の両方がロードされるのかを定義できます。

特に、次のバリエーションと、出力にそれらがどう影響するかに注意してください。

* テーブル内の LOAD ステートメントの数。

* \* 記号の有無 (後続の項目すべてをロードします)。

* カンマ (, 記号) の有無。

この例のスクリプトには、次の要素が含まれています。

* 4 つのテーブル。同じデータを参照します。項目名は異なります。

  * DerivedYears1: 2 つの LOAD ステートメントを使用して、インライン列と、インライン列の変換を含む列をロードします。

  * DerivedYears2: 2 つの LOAD ステートメントを使用します。スクリプトはインライン列をロードし、次に元の列から変換された計算された項目をロードします。2 番目の LOAD ステートメントでは、元の列がテーブルにロードされないため、元の項目を効果的に新しい項目が置換しています。

  * DerivedYears3: 単一の LOAD ステートメントを使用して、元のインライン列と変換された列の両方をロードします。

  * DerivedYears4: 単一の LOAD ステートメントを使用して、インライン項目と元の項目の変換を定義します。変換された項目のみがテーブルにロードされます。

ロード スクリプト

```
DerivedYears1:

Load *,
Year(initial_date1) as derived_year1
;
    
Load
* inline [
initial_date1
'1/1/2022'
'1/1/2023'
'1/1/2024'
];

DerivedYears2:

Load
Year(initial_date2) as derived_year2
;
    
Load
* inline [
initial_date2
'1/1/2022'
'1/1/2023'
'1/1/2024'
];

DerivedYears3:

Load Year(initial_date3) as derived_year3,
* inline [
initial_date3
'1/1/2022'
'1/1/2023'
'1/1/2024'
];

DerivedYears4:

Load Year(initial_date4) as derived_year4
inline [
initial_date4
'1/1/2022'
'1/1/2023'
'1/1/2024'
];
```

結果

結果テーブル: DerivedYears1DerivedYears1

| initial\_date1 | derived\_year1 |
| --- | --- |
| 1/1/2022 | 2022 |
| 1/1/2023 | 2023 |
| 1/1/2024 | 2024 |

結果テーブル: DerivedYears2DerivedYears2

| derived\_year2 |
| --- |
| 2022 |
| 2023 |
| 2024 |

結果テーブル: DerivedYears3DerivedYears3

| initial\_date3 | derived\_year3 |
| --- | --- |
| 1/1/2022 | 2022 |
| 1/1/2023 | 2023 |
| 1/1/2024 | 2024 |

結果テーブル: DerivedYears4DerivedYears4

| derived\_year4 |
| --- |
| 2022 |
| 2023 |
| 2024 |

#### 例: 項目コンテンツの変更

概要

大きなテキスト ファイルからスクリプト エディタに情報をペーストしているが、データセットのレコードに追加処理を実行したいと考えています。例えば、特定の文字とプレフィックスを削除して、各単語を大文字にしたい場合などです。

この例のスクリプトには、次の要素が含まれています。

* インライン テーブル、Transformations。項目のテキスト コンテンツを変更するために、変換が定義されています。変換されるテキストは、この後に追加されます。

* 2 つの LOAD ステートメント。例の構成の場合、派生項目 ProductName\_Trimmed のみがテーブルにロードされます。

ロード スクリプト

```
Transformations:

Load 
Capitalize(TextBetween(OrigColumn, '{','}')) as ProductName_Trimmed;

Load * inline [
OrigColumn
Product: {soft drinks and other beverages}
Product:  {snack food}
Product: {electronics and video games}
];
```

結果

結果テーブル

| ProductName\_Trimmed |
| --- |
| Soft Drinks And Other Beverages |
| Snack Food |
| Electronics And Video Games |

## 例 - 変換のための演算子と節

LOAD ステートメントで演算子を使用して、変換と特定の説を定義できます。詳細については、「[演算子およびその他の節](https://help.qlik.com/ja-JP/qlikview/May2024/Subsystems/Client/Content/QV_QlikView/Scripting/inline-loads-qv.htm#OpsAndClauses)」を参照してください。

[演算子](https://help.qlik.com/ja-JP/qlikview/May2024/Subsystems/Client/Content/QV_QlikView/Scripting/Operators/operators.htm)

#### ロード スクリプトと結果

概要

この例のスクリプトには、次の要素が含まれています。

* テーブル Purchases を定義する単純なインライン ロード。

* 計算された項目、OrderSize の挿入。この項目は、インライン データセットから amount 項目を変換したものです。購入額が 2000 ドルを超えるかどうかで、大か小に分類されます。

* amount が 0.05 ドル未満の場合にレコードがロードされないようにする where 節。

ロード スクリプト

```
Purchases:

Load
If(amount<2000,'Small Purchase','Large Purchase') as OrderSize,

* inline
[
ID, amount
1,2660.39
2,100.01
3,500.42
4,5023.99
5,0.04
6,2002.39
7,31034.53
8,1643.58
9,3993.65
10,614.34
11,675.93
]
WHERE
amount>1
;
```

結果

結果テーブル

| ID | amount | OrderSize |
| --- | --- | --- |
| 1 | 2660.39 | Large Purchase |
| 2 | 100.01 | Small Purchase |
| 3 | 500.42 | Small Purchase |
| 4 | 5023.99 | Large Purchase |
| 6 | 2002.39 | Large Purchase |
| 7 | 31034.53 | Large Purchase |
| 8 | 1643.58 | Small Purchase |
| 9 | 3993.65 | Large Purchase |
| 10 | 614.34 | Small Purchase |
| 11 | 675.93 | Small Purchase |

上のテーブルでは、5の ID のトランザクションがテーブルにロードされませんでした。これは、amount の値が 0.05 ドル未満だからです。

## 例 - インライン テーブルで null 値を作成する

この例は、NullInterpret 変数を使用して、インライン データで null 値を作成できる方法を示しています。

[NullInterpret](https://help.qlik.com/ja-JP/qlikview/May2024/Subsystems/Client/Content/QV_QlikView/Scripting/ValueHandlingVariables/NullInterpret.htm)

#### ロード スクリプトと結果

概要

この例のスクリプトには、次の要素が含まれています。

* テーブル T2 を定義する単純なインライン ロード。

* NullInterpret 変数は、2 つの一十引用符として定義されます。スクリプトがロードされると、この値を含むレコードが null 値として処理されます。

ロード スクリプト

```
set nullinterpret = '';
T2:
Load * inline [
Test
''
x ];
```

結果

結果テーブル

| Test |
| --- |
| x |

上のテーブルでは、最初のレコードが null 値です。そのため、ビジュアライゼーションには含まれません。追加の軸を持ちこのテーブルに存在する null 値は、- 記号で示されます。

## その他の例

その他の例については、「[Load](https://help.qlik.com/ja-JP/qlikview/May2024/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptRegularStatements/Load.htm)」を参照してください。

## 詳細を見る

* [Load](https://help.qlik.com/ja-JP/qlikview/May2024/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptRegularStatements/Load.htm)

* [書式指定アイテム](https://help.qlik.com/ja-JP/qlikview/May2024/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptSpecifiers/format-specification-items.htm)

* [インライン データ ウィザード](https://help.qlik.com/ja-JP/qlikview/May2024/Subsystems/Client/Content/QV_QlikView/Inline_Data_Wizard.htm)