# wildmatch - 指令碼與圖表函數

wildmatch 函數會比較第一個參數與所有後續參數，並傳回相符的運算式數目。這允許在比較字串中使用萬用字元 ( \* 和 ?)。 \* 符合任何字元順序。? 符合任何單一字元。比較區分大小寫，並區分日本平假名和片假名字元系統。

語法：

wildmatch( str, expr1 [ , expr2,...exprN ])

如果您想要不用萬用字元進行比較，請使用 match 或 mixmatch 函數。

本主題中的某些範例使用內嵌載入。如需詳細資訊，請參閱[使用內嵌載入以載入資料](https://help.qlik.com/zh-TW/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm)。

## 範例：使用 wildmatch 的載入指令碼

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ConditionalFunctions/wildmatch.htm)

#### 範例：載入指令碼

載入指令碼

您可以使用 wildmatch 載入資料子集。例如，您可以傳回函數中運算式的數值。然後您可以限制根據數值載入的資料。若沒有相符項目，Wildmatch 會傳回 0。在此範例中相符的所有運算式將會因此傳回 0，並且將會按照 WHERE 陳述式從資料載入中排除。

在資料載入編輯器中建立新的索引標籤，然後載入下列資料作為內嵌載入。在 Qlik Sense 中建立以下表格以查看結果。

```
Transactions:
Load * Inline [
transaction_id, transaction_date, transaction_amount, transaction_quantity, customer_id, size, color_code
3750, 20180830, 23.56, 2, 2038593, L, Red
3751, 20180907, 556.31, 6, 203521, m, orange
3752, 20180916, 5.75, 1, 5646471, S, blue
3753, 20180922, 125.00, 7, 3036491, l, Black
3754, 20180922, 484.21, 13, 049681, xs, Red
3756, 20180922, 59.18, 2, 2038593, M, Blue
3757, 20180923, 177.42, 21, 203521, XL, Black
];
 
/*
Create new table called Transaction_Buckets
Create new fields called Customer, and Color code - Black, Blue, blue, red
Load Transactions table.
Wildmatch returns 1 for 'Black', 'Blue', and 'blue', and 2 for 'Red'. 
Only values that returned numeric value greater than 0 
are loaded by WHERE statement into Transactions_Buckets table.
*/
 
Transaction_Buckets:
Load
   customer_id,
   customer_id as [Customer],
   color_code as [Color Code Black, Blue, blue, Red]
Resident Transactions
Where wildmatch(color_code,'Bl*','R??') > 0;
```

結果

使用在載入指令碼中的 wildmatchwildmatch 函數來顯示輸出的 Qlik SenseQlik Sense 表格

| 色彩代碼 黑色、藍色、藍色、紅色 | 客戶 |
| --- | --- |
| 黑色 | 203521 |
| 黑色 | 3036491 |
| 藍色 | 2038593 |
| 藍色 | 5646471 |
| 紅色 | 049681 |
| 紅色 | 2038593 |

## 範例：使用 wildmatch 的圖表運算式

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ConditionalFunctions/wildmatch.htm)

#### 範例：圖表運算式

圖表運算式 1

在資料載入編輯器中建立新的索引標籤，然後載入下列資料作為內嵌載入。載入資料後，在 Qlik Sense 表格中建立以下的圖表運算式範例。

```
MyTable:
Load * inline [Cities, Count
Toronto, 123
Toronto, 234
Toronto, 231
Boston, 32
Boston, 23
Boston, 1341
Beijing, 234
Beijing, 45
Beijing, 235
Stockholm, 938
Stockholm, 39
Stockholm, 189
zurich, 2342
zurich, 9033
zurich, 0039];
```

以下表格中的第一個運算式會傳回 0 代表 Stockholm，因為 'Stockholm' 不包括在 wildmatch 函數的運算式清單中。這也傳回 0 代表 'Boston'，因為 ? 僅符合單一字元。

在圖表運算式中顯示 wildmatchwildmatch 函數範例的 Qlik SenseQlik Sense 表格。

| Cities | wildmatch( Cities,'Tor\*','?ton','Beijing','\*urich') | wildmatch( Cities,'Tor\*','???ton','Beijing','Stockholm','\*urich') |
| --- | --- | --- |
| Beijing | 3 | 3 |
| Boston | 0 | 2 |
| Stockholm | 0 | 4 |
| Toronto | 1 | 1 |
| zurich | 4 | 5 |

圖表運算式 2

您可以使用 wildmatch 以執行運算式的自訂排序。

按照預設，會按數字或字母排序欄，視資料而定。

Qlik SenseQlik Sense 表格顯示預設排序的範例

| Cities |
| --- |
| Beijing |
| Boston |
| Stockholm |
| Toronto |
| zurich |

若要變更順序，請進行下列事項：

1. 在屬性面板中開啟圖表的排序區段。

2. 對於您要進行自訂排序的欄，關閉自動排序。

3. 取消選取按數字排序和按字母排序。

4. 選取按運算式排序，然後輸入類似下列項目的運算式：

   `=wildmatch( Cities, 'Tor*','???ton','Beijing','Stockholm','*urich')`

   Cities 欄的排序順序會變更。

Qlik SenseQlik Sense 表格顯示使用 wildmatchwildmatch 函數變更排序順序的範例。

| Cities |
| --- |
| 多倫多 |
| Boston |
| Beijing |
| Stockholm |
| zurich |

您也可以檢視傳回的數值。

Qlik SenseQlik Sense 表格顯示從 wildmatchwildmatch 函數傳回的數值範例

| 城市 | Cities & ' - ' & wildmatch ( Cities, 'Tor\*','???ton','Beijing','Stockholm','\*urich') |
| --- | --- |
| 多倫多 | 多倫多 - 1 |
| 波士頓 | Boston - 2 |
| 北京 | Beijing - 3 |
| 斯德哥爾摩 | Stockholm - 4 |
| 蘇黎世 | zurich - 5 |

## 瞭解更多資訊

* [match - 指令碼與圖表函數](https://help.qlik.com/zh-TW/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ConditionalFunctions/match.htm)
* [mixmatch - 指令碼與圖表函數](https://help.qlik.com/zh-TW/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ConditionalFunctions/mixmatch.htm)