LISTIF 函式

傳回符合指定條件的資料列在某一資料欄中所有值的清單。

附註:在轉換中加入這個函式後,系統會將其套用到目前的樣本。如果您變更樣本或執行工作,此函式所計算出的值也會一併更新。在後續方案步驟中,變更資料列數量的轉換指令並不會影響這個步驟計算出的值。

若要執行簡單的擷取值作業,而不設下任何條件,請使用 LIST 函式。請參閱 LIST 函式

基本用法

pivot value: LISTIF(hotChocolateLiters, 500, temperature < 0) group:date limit:1

輸出:針對每個 date,當 hotChocolateLiters 值小於 0 時,系統會產生由兩個資料欄組成的資料表,其中含有 date 的不重複值和來自 temperature 資料欄的值。最大值為 500。limit 參數會定義輸出資料欄數量上限。

語法

pivot value:LISTIF(col_ref, limit, test_expression) [group:group_col_ref] [limit:limit_count]

引數是否必要?資料類型說明
col_ref字串參照您要求取值的資料欄。
limit_int整數要擷取至清單陣列的值數上限。數量範圍從 11000
test_expression字串用來求取值的運算式,必須解析為 truefalse

若要進一步瞭解語法標準,請參閱語言文件語法附註

若要進一步瞭解 grouplimit 參數,請參閱 Pivot 轉換

col_ref

您在計算時要使用的來源值資料欄名稱,資料欄必須為數字類型 (整數或小數)。

使用須知:

是否必要?資料類型範例值
對應至資料欄名稱的字串myValues

limit_int

非負整數,定義要擷取至清單陣列的值數上限。

附註:如果指定此引數,則這個值必須介於 1 到 1000 (含) 之間。

附註:請勿在平面匯總的 LISTIF 函式呼叫中使用限制引數,因為資料欄中的所有值都會插入一個儲存格。在此情況下,如果您同時指定了 group 參數,也許就可以使用限制引數。濫用 LISTIF 函式會造成應用程式當機。

test_expression

這個參數含有用來求取值的運算式。這個運算式必須解析為布林值 (truefalse)。

使用須知:

是否必要?資料類型範例值
得出的結果值為 truefalse 的字串運算式(LastName == 'Mouse' && FirstName == 'Mickey')

範例

範例 - ANYIF 及 LISTIF 函式

本節提供簡單的範例,示範如何使用 ANYIFLISTIF 函式。這些函式的作用如下:

  • ANYIF - 識別群組中符合特定條件的單一值。請參閱 ANYIF 函式
  • LISTAIF - 列出群組中符合指定條件的所有值。請參閱 LISTIF 函式

來源:

以下為每位銷售人員某一週的銷售量資料:

EmployeeIdDateSales
S0011/23/1725
S0021/23/1740
S0031/23/1748
S0011/24/1781
S0021/24/1711
S0031/24/1725
S0011/25/179
S0021/25/1740
S0031/25/17
S0011/26/1777
S0021/26/1783
S0031/26/17
S0011/27/1717
S0021/27/1771
S0031/27/1729
S0011/28/17
S0021/28/17
S0031/28/1714
S0011/29/172
S0021/29/177
S0031/29/1799

轉換:

在本例中,您關注的是高績效的員工。個人銷售量超過 80 個單位即代表該日銷售業績好。首先,您需要識別星期幾:

derive type:single value:WEEKDAY(Date) as:'DayOfWeek'

DayOfWeek 中大於 5 的值為週末日。您可以使用下列指令來識別是否有人在工作日 (非週末) 達到這個高標:

pivot value:ANYIF(Sales, (Sales > 80 && DayOfWeek < 6)) group:EmployeeId,Date limit:1

將此步驟加入方案之前,請先記下 anyif_Sales 資料欄中達到此目標的員工以便辨認。

現在,您想要找出一週內個別員工的銷售量。您可以使用下列指令來進行篩選,以便只顯示工作日的資料:

pivot value:LISTIF(Sales, 1000, (DayOfWeek < 6)) group:EmployeeId,Date limit:1

若要清理資料,您可以在 listif_Sales 資料欄中選取下列值,並將值替換為空白字串:

["
"]
[]

結果:

EmployeeIdDatelistif_Sales
S0011/23/1725
S0021/23/1740
S0031/23/1748
S0011/24/1781
S0021/24/1711
S0031/24/1725
S0011/25/1740
S0021/25/17
S0031/25/1766
S0011/26/1777
S0021/26/1783
S0031/26/17
S0011/27/1717
S0021/27/1771
S0031/27/1729
S0011/28/17
S0021/28/17
S0031/28/17
S0011/29/17
S0021/29/17
S0031/29/17

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Google Cloud Dataprep 說明文件
需要協助嗎?請前往我們的支援網頁