# LookUp - スクリプト関数

Lookup() は、すでにロードされているテーブルを参照し、項目 match\_field\_name における値 match\_field\_value の最初の出現に対応する field\_name の値を返します。テーブルは、現在のテーブルまたは前にロードして別のテーブルにすることができます。

構文:

lookup(field\_name, match\_field\_name, match\_field\_value [, table\_name])

戻り値データ型： デュアル

引数：

LookUp 引数

| 引数 | 説明 |
| --- | --- |
| field\_name | 戻り値が必要な項目名。入力値は文字列として指定する必要があります (たとえば、引用符で囲まれた文字列)。 |
| match\_field\_name | match\_field\_value を検索する項目の名前。 入力値は文字列として指定する必要があります (たとえば、引用符で囲まれた文字列)。 |
| match\_field\_value | match\_field\_name 項目で検索する値。 |
| table\_name | 値を検索するテーブルの名前。入力値は文字列として指定する必要があります (例えば、引用符で囲まれた文字列)。<br><br><br>table\_name が省略されている場合は、現在のテーブルとして処理されます。 |

情報メモ引数に引用符がない場合、現在のテーブルを参照します。他のテーブルを参照するには、引数を単一引用符で囲みます。

制限事項:

連結などの複雑な操作の結果テーブルでは、検索順は明確に定義されませんが、それ以外の場合、検索はロード順に実行されます。field\_name と match\_field\_name は両方とも、table\_name で指定された同一テーブルの項目であることが必要です。

一致するものがない場合は、NULL が返されます。

サンプル データでは、Lookup() 関数を以下の形式で使用します。

`Lookup('Category', 'ProductID', ProductID, 'ProductList')`

ドキュメントに例のスクリプトを追加して実行します。その後、結果列に含まれている項目をドキュメントのシートに追加して結果を表示します。

`ProductList:` `Load * Inline [` `ProductID|Product|Category|Price` `1|AA|1|1` `2|BB|1|3` `3|CC|2|8` `4|DD|3|2` `] (delimiter is '|');` ` ` `OrderData:` `Load *, Lookup('Category', 'ProductID', ProductID, 'ProductList') as CategoryID` `Inline [` `InvoiceID|CustomerID|ProductID|Units` `1|Astrida|1|8` `1|Astrida|2|6` `2|Betacab|3|10` `3|Divadip|3|5` `4|Divadip|4|10` `] (delimiter is '|');` ` ` `Drop Table ProductList` ` `

ProductList テーブルが最初にロードされます。

Lookup() 関数を使用して、OrderData テーブルが構築されます。この関数では、3 番目の引数として、ProductID が指定されていますProductList の 'ProductID' (単一引用符で囲まれた 2 番目の引数) で、この項目の値が検索されます。

関数は、'Category' (ProductList テーブル) の値を CategoryID.としてロードして返します。

drop ステートメントは、不要になった ProductList テーブルをデータ モデルから削除します。以下の結果を持つ OrderData テーブルが残ります。

例 1 の結果

| ProductID | InvoiceID | CustomerID | Units | CategoryID |
| --- | --- | --- | --- | --- |
| 1 | 1 | Astrida | 8 | 1 |
| 2 | 1 | Astrida | 6 | 1 |
| 3 | 2 | Betacab | 10 | 2 |
| 3 | 3 | Divadip | 5 | 2 |
| 4 | 4 | Divadip | 10 | 3 |

情報メモ Lookup() 関数には柔軟性があり、過去にロードしたテーブルにもアクセスできます。ただし、Applymap() 関数と比べると、処理に時間がかかります。

## 詳細を見る

* [ApplyMap - スクリプト関数](https://help.qlik.com/ja-JP/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/Scripting/MappingFunctions/ApplyMap.htm)