# Replace 指令碼與圖表函數

將輸入字串內所有出現的指定子字串取代為另一個子字串之後，Replace() 會傳回該字串。此函數不遞迴並會從左至右運作。

語法：

Replace(text, from\_str, to\_str)

傳回的資料類型： 字串

引數

| 引數 | 描述 |
| --- | --- |
| text | 原始字串。 |
| from\_str | 輸入字串 text 內可能出現一次或多次的字串。 |
| to\_str | 要取代字串 text 內所有出現的 from\_str 的字串。 |

範例：圖表運算式

| 範例 | 結果 |
| --- | --- |
| `Replace( 'abccde','cc','xyz' )` | 傳回 `abxyzde` |

## 範例 - Replace 基礎事項

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/Replace.htm)

#### 圖表運算式

概述

客戶姓名資料集包含一些拼字錯誤。此範例使用 `Replace` 函數處理任何錯誤顯示的「Jhon」並更改為「John」。

開啟資料載入編輯器並將下面的載入指令碼新增至新的區段。

載入指令碼包含：

* 載入到稱為 `Example` 之資料表格的資料集。

* 資料表格中的欄位如下：

  * `CustomerID`

  * `CustomerName`

載入指令碼

```
Example:
Load * inline [
CustomerID, CustomerName
1, Jhon Smith
2, Jhon Doe
3, John Williams
4, Jhonathan Harris
];
```

結果

載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度：

* ` CustomerID
                                       `

* `CustomerName`

建立下列計算維度：

* `=Replace(CustomerName,'Jhon','John')`，用來將 `Jhon` 的所有執行個體替換為 `John`。

結果表格

| 設定 CustomerID： | CustomerName | Replace(CustomerName,'Jhon','John') |
| --- | --- | --- |
| 1 | Jhon Smith | John Smith |
| 2 | Jhon Doe | John Doe |
| 3 | John Williams | John Williams |
| 4 | Jhonathan Harris | Johnathan Harris |

`Repeat` 函數的輸出尋找 `Jhon` 的所有執行個體並以 `John` 校正。

## 範例 - Replace 使用情境

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/Replace.htm)

#### 圖表運算式

概述

產品資料集使用不一致的類別代碼標籤。例如，電氣產品有多種代碼變化，例如 `ELEC`、`ELC` 和 `elc`。若要標準化代碼，`Replace` 函數可用來校正電氣和家具產品所有不一致的類別代碼。

開啟資料載入編輯器並將下面的載入指令碼新增至新的區段。

載入指令碼包含：

* 載入到稱為 `Example` 之資料表格的資料集。

* 資料表格中的欄位如下：

  * `ProductID`

  * `CategoryCode`

載入指令碼

```
Example:
Load * inline [
ProductID, CategoryCode
1, ELEC
2, ELC
3, FURN
4, FRN
5, ELEC
6, ELC
7, elc
];
```

結果

載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度：

* ` ProductID
                                       `

* `CategoryCode`

建立下列計算維度：

* `=Replace(Replace(Upper(CategoryCode), 'ELC', 'ELEC'),'FRN', 'FURN')`，用來將 `ELC` 的任何執行個體替換為 `ELEC`，並將 `FRN` 的任何執行個體替換為 `FURN`。

結果表格

| ProductID (產品 ID) | CategoryCode | Replace(Replace(Upper(CategoryCode), 'ELC', 'ELEC'),'FRN', 'FURN') |
| --- | --- | --- |
| 1 | ELEC | ELEC |
| 2 | ELC | ELEC |
| 3 | FURN | FURN |
| 4 | FRN | FURN |
| 5 | ELEC | ELEC |
| 6 | ELC | ELEC |
| 7 | elc | ELEC |

`Replace` 函數的輸出已將 `ELC` 的任何執行個體替換為 `ELEC`，並將 `FRN` 替換為 `FURN`。請注意，也已替換代碼 `elc`。雖然 `Replace` 函數區分大小寫，但維度公式在取代字串之前使用 `Upper` 函數，以符合所有 `CategoryCodes` 的大小寫。這有效讓字串替換不區分大小寫。

## 瞭解更多資訊

* [Replace](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/Replace.htm)