Mid - 指令碼與圖表函數
Mid() 會傳回輸入字串的部分,從第二個引數 'start' 定義的字元位置開始,並傳回第三個引數 'count' 定義的字元數目。如省略 'count',則會傳回剩餘的輸入字串。輸入字串中的第一個字元編號為 1。
語法:
Mid(text, start[, count])
傳回的資料類型: 字串
引數
text
|
原始字串。 |
start
|
定義要包括的 text 第一個字元位置的整數。 |
count
|
定義輸出字串的字串長度。如果省略,會包括 start 定義位置的所有字元。 |
範例:圖表運算式
Mid( 'abcdef',3 )
|
傳回 cdef |
Mid( 'abcdef',3, 2 )
|
傳回 cd |
範例 - Mid 基礎事項
概述
開啟資料載入編輯器並將下面的載入指令碼新增至新的索引標籤。
載入指令碼包含:
-
載入到稱為 Example 之資料表格的資料集。
-
資料表格中的欄位如下:
載入指令碼
Example:
Load * inline [
InputText, StartPosition, CharacterCount
abcdef, 3, 2
abcdef, 2, 3
210714, 3, 2
210714, 2, 3
];
結果
載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度:
-
InputText
-
StartPosition
-
CharacterCount
建立下列計算維度:
-
=mid(InputText,StartPosition),用來從 StartPosition 欄位中的值開始計算要從 InputText 擷取的字元。由於未提供 Count 參數,該函數將傳回從 StartPosition 值到 InputString 結束的所有字元。
-
=mid(InputText,StartPosition,CharacterCount),用來從 StartPosition 欄位中的值開始計算要從 InputText 擷取的字元。CharacterCount 中的值決定傳回的字元數量,從 StartPosition 欄位中的值開始。
結果表格
InputText |
StartPosition |
CharacterCount
|
Mid(InputText,StartPosition) |
Mid(InputText,StartPosition,CharacterCount |
abcdef |
2 |
3 |
bcdef |
bcd |
abcdef |
3 |
2 |
cdef |
cd |
20210714 |
2 |
3 |
10714 |
107 |
20210714 |
3 |
2 |
0714 |
07
|
第一列傳回第一個運算式的值 bcdef。此運算式從位置 2 開始,並傳回所有字元,因為未設定 Count 引數。第二個運算式也從位置 2 開始,但僅傳回字元 bcd,因為 Count 引數是 2。
第二列傳回第一個運算式的值 cdef。此運算式從位置 3 開始,並傳回所有字元,因為未設定 Count 引數。第二個運算式也從位置 3 開始,但僅傳回字元 cd,因為 Count 引數是 2。
第三列傳回第一個運算式的值 10714。此運算式從位置 2 開始,並傳回所有字元,因為未設定 Count 引數。第二個運算式也從位置 2 開始,但僅傳回字元 107,因為 Count 引數是 3。
第四列傳回第一個運算式的值 0714。此運算式從位置 3 開始,並傳回所有字元,因為未設定 Count 引數。第二個運算式也從位置 2 開始,但僅傳回字元 07,因為 Count 引數是 2。
以下程式碼顯示如何在載入指令碼中使用該函數。
Example:
Load *,
mid(Text,StartPosition) as Mid1,
mid(Text,StartPosition,Count) as Mid2;
Load * inline [
Text, StartPosition, Count
'abcdef', 3, 2
'abcdef', 2, 3
'210714', 3, 2
'210714', 2, 3
];
結果表格
Text | StartPosition | Mid1 | 計數 | Mid2 |
abcdef | 3 | cdef | 2 | cd |
abcdef | 2 | bcdef | 3 | bcd |
210714 | 3 | 0714 | 2 | 07 |
210714 | 2 | 10714 | 3 | 107 |
範例 - Mid 使用情境
概述
資料來源包含一個名為 OrderID 的欄,該欄使用下列結構化格式:ORDYYYY-COUNTRYCODE-ORDERNUMBER。為了滿足報告要求,您必須擷取國家代碼並以獨立的欄顯示。
開啟資料載入編輯器並將下面的載入指令碼新增至新的索引標籤。
載入指令碼包含:
-
載入到稱為 Orders 之資料表格的資料集。
-
資料表格中稱為 OrderID 的一個欄位。
載入指令碼
Orders:
Load * inline [
OrderID
ORD2024-US-123456
ORD2024-UK-654321
ORD2024-CA-789123
];
結果
載入資料並開啟工作表。建立新的表格並將此欄位新增為維度:
建立下列計算維度:
結果表格
OrderID |
Mid(OrderID, 9, 2) |
ORD2024-CA-789123 |
CA |
ORD2024-UK-654321 |
UK |
ORD2024-US-123456 |
US |
Mid 函數的輸出已成功從 OrderID 字串值中擷取兩個字母的國家代碼。