下列範例示範函式如何使用模式評估任何類型的開頭值與結尾值。包括:
STARTSWITH
- 檢查指定資料欄開頭的值,對照特定的模式或常值。請參閱 STARTSWITH 函式一文。ENDSWITH
- 檢查指定資料欄結尾的值,對照特定的模式或常值。請參閱 ENDSWITH 函式一文。
來源:
以下庫存清單報告代表的是依照產品名稱排序的可用產品數量。您需要依據下列規則,確認產品名稱是否仍有效:
- 產品名稱必須以三位數的品牌 ID 開頭,並在後面加上破折號。
- 產品名稱必須以破折號結尾,並在後面加上六位數的 SKU。
來源資料如下所示,而「驗證」資料欄中沒有任何值。
InvDate | ProductName | Qty | Validation |
---|---|---|---|
04/21/2017 | 412-Widgets-012345 | 23 | |
04/21/2017 | 04-Fidgets-120341 | 66 | |
04/21/2017 | 204-Midgets-4421 | 31 | |
04/21/2017 | 593-Gidgets-402012 | 24 |
轉換:
在這個例子中,必須要以兩種條件求得 ProductName
資料欄的值。兩種條件函式如下所示:
IF(STARTSWITH(ProductName, `#{3}-`), 'Ok', 'Bad ProductName-Brand')
IF(ENDSWITH(ProductName, `-#{6}`), 'Ok', 'Bad ProductName-SKU')
一種方式是使用 derive
轉換建立兩個新的測試資料欄,再依據這兩個資料欄求得的值使用 set
轉換。不過如果使用下列指令,就不用建立中繼的資料欄,以一個步驟即可完成求值:
set col: Status value: IF(STARTSWITH(ProductName, `#{3}-`), IF(ENDSWITH(ProductName, `-#{6}`), 'Ok', 'Bad ProductName-SKU'), 'Bad ProductName-Brand')
結果:
InvDate | ProductName | Qty | Validation |
---|---|---|---|
04/21/2017 | 412-Widgets-012345 | 23 | Ok |
04/21/2017 | 04-Fidgets-120341 | 66 | Bad ProductName-Brand |
04/21/2017 | 204-Midgets-4421 | 31 | Bad ProductName-SKU |
04/21/2017 | 593-Gidgets-402012 | 24 | Ok |