LookUp - 指令碼函數
Lookup() 會查看已載入的表格,並且傳回的 field_name 值相當於欄位 match_field_name 中出現的第一個值 match_field_value。該表格可以是目前表格,或者先前載入的另一個表格。
語法:
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,則會採用目前表格。
|
資訊備註不含引號的引數會參考目前表格。若要參考其他表格,請將引數含括在單引號中。
限制:
搜尋順序為載入順序,除非表格是複雜運算 (如 join) 的結果,若是如此,順序無法明確定義。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 (產品 ID) | 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 表格。如果將第三個引數指定為 ProductID。這是將在 ProductList 的第二個引數 'ProductID' 中查閱值的欄位,如含括的單引號所指示。
函數傳回 'Category' (在 ProductList 表格中) 的值,作為 CategoryID 載入。
drop 陳述式會從資料模型中刪除 ProductList 表格,因為不需要該項目,這會留下產生的 OrderData 表格。
資訊備註Lookup() 函數是彈性的,可以存取任何先前載入的表格。然而,它與 Applymap() 函數相比較速度較慢。