LookUp - スクリプト関数このページ上
Lookup() は、すでにロードされているテーブルを参照し、項目 match_field_name における値 match_field_value の最初の出現に対応する field_name の値を返します。テーブルは、現在のテーブルまたは前にロードして別のテーブルにすることができます。
構文:
lookup( field_name,
match_field_name, match_field_value [, table_name] )
戻り値データ型: デュアル
引数:
引数
field_name
戻り値が必要な項目名。 入力値は文字列として指定する必要があります (たとえば、引用符で囲まれた文字列)。
match_field_name
match_field_value を検索する項目の名前。 入力値は文字列として指定する必要があります (たとえば、引用符で囲まれた文字列)。
match_field_value
match_field_name 項目で検索する値。
table_name
値を検索するテーブルの名前。入力値は文字列として指定する必要があります (例えば、引用符で囲まれた文字列)。
table_name が省略されている場合は、現在のテーブルとして処理されます。
情報メモ 引数に引用符がない場合、現在のテーブルを参照します。他のテーブルを参照するには、引数を単一引用符で囲みます。
制限事項:
連結などの複雑な操作の結果テーブルでは、検索順は明確に定義されませんが、それ以外の場合、検索はロード順に実行されます。field_name と match_field_name は両方とも、table_name で指定された同一テーブルの項目であることが必要です。
一致するものがない場合は、NULL が返されます。
例
ロード スクリプト
以下のデータをインライン データとしてデータロードエディタにロードして、以下の例を作成します。
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;
インライン ロードの使用の詳細については、インライン ロードを使用したデータのロード を参照してください。
ビジュアライゼーションの作成 Qlik Sense シートにテーブル ビジュアライゼーションを作成します。項目 ProductID 、InvoiceID 、CustomerID 、Units 、CategoryID をテーブルに追加します。
結果 結果のテーブル ProductID InvoiceID CustomerID ユニット: 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() 関数を以下の形式で使用します。
Lookup('Category', 'ProductID', ProductID, 'ProductList')
ProductList テーブルが最初にロードされます。
Lookup() 関数を使用して、OrderData テーブルが構築されます。この関数では、3 番目の引数として、ProductID が指定されていますProductList の 'ProductID' (単一引用符で囲まれた 2 番目の引数) で、この項目の値が検索されます。
関数は、'Category ' (ProductList テーブル) の値を CategoryID .としてロードして返します。
drop ステートメントは、不要になった ProductList テーブルをデータ モデルから削除します。結果の OrderData テーブルが残ります。
情報メモ Lookup() 関数には柔軟性があり、過去にロードしたテーブルにもアクセスできます。ただし、Applymap() 関数と比べると、処理に時間がかかります。