# monthname - 指令碼與圖表函數

此函數會傳回顯示月份 (根據 MonthNames 指令碼變數進行格式設定) 和年度的顯示值，其基礎數值相當於該月份第一天、第一毫秒的時間戳記。

語法：

MonthName(date[, period\_no])

傳回的資料類型： 雙值

monthname 函數的圖表

monthname 函數的圖表

monthname 函數的圖表 ![monthname 函數的範例圖表，顯示函數如何在給定特定輸入日期時傳回月份和年份的綜合結果。](https://help.qlik.com/zh-TW/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-monthname-general.png)

引數

| 引數 | 描述 |
| --- | --- |
| date | 要評估的時間戳記。 |
| period\_no | period\_no 是一個整數，如果為 0 或忽略，則表示包含 date 的月份。負值的 period\_no 表示之前的月份，正值表示之後的月份。 |

函數範例

| 範例 | 結果 |
| --- | --- |
| `monthname('10/19/2013')` | 傳回 Oct 2013 |
| `monthname('10/19/2013', -1)` | 傳回 Sep 2013 |

## 區域設定

除非另有說明，否則此主題中的範例皆使用下列日期格式：MM/DD/YYYY。日期格式是在資料載入指令碼的 `SET DateFormat` 陳述式中指定。由於地區設定和其他因素，您系統中的預設日期格式可能會不同。您可以變更以下範例中的格式，以滿足您的需求。或者，您可以在載入指令碼中變更格式，以符合這些範例。

應用程式中的預設地區設定是根據安裝 Qlik Sense 之電腦或伺服器的地區系統設定。若您存取的 Qlik Sense 伺服器設定為瑞典，資料載入編輯器將會對日期、時間和貨幣使用瑞典文地區設定。這些地區格式設定與 Qlik Sense 使用者介面中顯示的語言無關。Qlik Sense 顯示的語言將與您正在使用的瀏覽器相同。

## 範例 1 – 基本範例

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

#### 載入指令碼和結果

概覽

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

載入指令碼包含：

* 包含一組 2022 年交易的資料集，這載入到稱為 `Transactions` 的表格中。

* 以 `DateFormat` 系統變數 (MM/DD/YYYY) 格式提供的日期欄位。

* 建立欄位 `transaction_month`，這傳回交易發生的月份。

載入指令碼

```
SET DateFormat='MM/DD/YYYY';
SET MonthNames='Jan;Feb;Mar;Apr;May;Jun;Jul;Aug;Sep;Oct;Nov;Dec';
						
Transactions:
    Load
        *,
        monthname(date) as transaction_month
        ;
Load
*
Inline
[
id,date,amount
8188,1/7/2022,17.17
8189,1/19/2022,37.23
8190,2/28/2022,88.27
8191,2/5/2022,57.42
8192,3/16/2022,53.80
8193,4/1/2022,82.06
8194,5/7/2022,40.39
8195,5/16/2022,87.21
8196,6/15/2022,95.93
8197,6/26/2022,45.89
8198,7/9/2022,36.23
8199,7/22/2022,25.66
8200,7/23/2022,82.77
8201,7/27/2022,69.98
8202,8/2/2022,76.11
8203,8/8/2022,25.12
8204,8/19/2022,46.23
8205,9/26/2022,84.21
8206,10/14/2022,96.24
8207,10/29/2022,67.67
];
```

結果

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

* `date`

* `transaction_month`

結果表格

| 日期 | transaction\_month |
| --- | --- |
| 1/7/2022 | 2022 年 1 月 |
| 1/19/2022 | 2022 年 1 月 |
| 2/5/2022 | 2022 年 2 月 |
| 2/28/2022 | 2022 年 2 月 |
| 3/16/2022 | 2022 年 3 月 |
| 4/1/2022 | 2022 年 4 月 |
| 5/7/2022 | 2022 年 5 月 |
| 5/16/2022 | 2022 年 5 月 |
| 6/15/2022 | 2022 年 6 月 |
| 6/26/2022 | 2022 年 6 月 |
| 7/9/2022 | 2022 年 7 月 |
| 7/22/2022 | 2022 年 7 月 |
| 7/23/2022 | 2022 年 7 月 |
| 7/27/2022 | 2022 年 7 月 |
| 8/2/2022 | 2022 年 8 月 |
| 8/8/2022 | 2022 年 8 月 |
| 8/19/2022 | 2022 年 8 月 |
| 9/26/2022 | 2022 年 9 月 |
| 10/14/2022 | 2022 年 10 月 |
| 10/29/2022 | 2022 年 10 月 |

`transaction_month` 欄位在前置 LOAD 陳述式中的建立方式是使用 `monthname()` 函數，並傳遞 `date` 欄位，作為函數的引數。

monthname 函數的圖表，基本範例

monthname 函數的圖表，基本範例

monthname 函數的圖表，基本範例![圖表顯示使用 monthname 函數決定交易發生月份的結果。](https://help.qlik.com/zh-TW/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-monthname-basic-example.png)

`monthname()` 函數決定交易 8192 發生在 2022 年 3 月，並使用 `MonthNames` 系統變數傳回此值。

## 範例 2 – period\_no

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

#### 載入指令碼和結果

概覽

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

載入指令碼包含：

* 與第一個範例相同的內嵌資料集和情境。

* 建立欄位 `transaction_previous_month`，這傳回交易發生之前的月份結束的時間戳記。

載入指令碼

```
SET DateFormat='MM/DD/YYYY';
SET MonthNames='Jan;Feb;Mar;Apr;May;Jun;Jul;Aug;Sep;Oct;Nov;Dec';

Transactions:
    Load
        *,
        monthname(date,-1) as transaction_previous_month
        ;
Load
*
Inline
[
id,date,amount
8188,1/7/2022,17.17
8189,1/19/2022,37.23
8190,2/28/2022,88.27
8191,2/5/2022,57.42
8192,3/16/2022,53.80
8193,4/1/2022,82.06
8194,5/7/2022,40.39
8195,5/16/2022,87.21
8196,6/15/2022,95.93
8197,6/26/2022,45.89
8198,7/9/2022,36.23
8199,7/22/2022,25.66
8200,7/23/2022,82.77
8201,7/27/2022,69.98
8202,8/2/2022,76.11
8203,8/8/2022,25.12
8204,8/19/2022,46.23
8205,9/26/2022,84.21
8206,10/14/2022,96.24
8207,10/29/2022,67.67
];
```

結果

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

* `date`

* `transaction_previous_month`

結果表格

| 日期 | transaction\_previous\_month |
| --- | --- |
| 1/7/2022 | 2021 年 12 月 |
| 1/19/2022 | 2021 年 12 月 |
| 2/5/2022 | 2022 年 1 月 |
| 2/28/2022 | 2022 年 1 月 |
| 3/16/2022 | 2022 年 2 月 |
| 4/1/2022 | 2022 年 3 月 |
| 5/7/2022 | 2022 年 4 月 |
| 5/16/2022 | 2022 年 4 月 |
| 6/15/2022 | 2022 年 5 月 |
| 6/26/2022 | 2022 年 5 月 |
| 7/9/2022 | 2022 年 6 月 |
| 7/22/2022 | 2022 年 6 月 |
| 7/23/2022 | 2022 年 6 月 |
| 7/27/2022 | 2022 年 6 月 |
| 8/2/2022 | 2022 年 7 月 |
| 8/8/2022 | 2022 年 7 月 |
| 8/19/2022 | 2022 年 7 月 |
| 9/26/2022 | 2022 年 8 月 |
| 10/14/2022 | 2022 年 9 月 |
| 10/29/2022 | 2022 年 9 月 |

在此例中，因為 `period_no` 的值 -1 已作為 `monthname()` 函數中的偏移引數使用，所以該函數首先會識別交易發生的月份。然後這會往前移動一個月並傳回月份名稱和年份。

monthname 函數的圖表，period\_no 範例

monthname 函數的圖表，period\_no 範例

monthname 函數的圖表，period\_no 範例![圖表顯示使用 monthname 函數決定交易發生月份的結果。](https://help.qlik.com/zh-TW/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-monthname-period-no.png)

交易 8192 發生於 3 月 16 日。`monthname()` 函數識別交易發生之前的月份是 2 月，並以 `MonthNames` 系統變數格式傳回該月份以及 2022 年。

## 範例 3 – 圖表物件範例

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

#### 載入指令碼和圖表運算式

概覽

開啟資料載入編輯器並將下面的載入指令碼新增至新的索引標籤。

載入指令碼包含與第一個範例相同的內嵌資料集和情境。不過，在此範例中，不變的資料集會載入到應用程式中。會建立傳回交易發生月份結束時間戳記的計算，作為應用程式圖表物件中的量值。

載入指令碼

```
SET DateFormat='MM/DD/YYYY';
SET MonthNames='Jan;Feb;Mar;Apr;May;Jun;Jul;Aug;Sep;Oct;Nov;Dec';

Transactions:
Load
*
Inline
[
id,date,amount
8188,1/7/2022,17.17
8189,1/19/2022,37.23
8190,2/28/2022,88.27
8191,2/5/2022,57.42
8192,3/16/2022,53.80
8193,4/1/2022,82.06
8194,5/7/2022,40.39
8195,5/16/2022,87.21
8196,6/15/2022,95.93
8197,6/26/2022,45.89
8198,7/9/2022,36.23
8199,7/22/2022,25.66
8200,7/23/2022,82.77
8201,7/27/2022,69.98
8202,8/2/2022,76.11
8203,8/8/2022,25.12
8204,8/19/2022,46.23
8205,9/26/2022,84.21
8206,10/14/2022,96.24 
8207,10/29/2022,67.67
];
```

結果

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

建立下列量值：

`=monthname(date)`

結果表格

| 日期 | =monthname(date) |
| --- | --- |
| 1/7/2022 | 2022 年 1 月 |
| 1/19/2022 | 2022 年 1 月 |
| 2/5/2022 | 2022 年 2 月 |
| 2/28/2022 | 2022 年 2 月 |
| 3/16/2022 | 2022 年 3 月 |
| 4/1/2022 | 2022 年 4 月 |
| 5/7/2022 | 2022 年 5 月 |
| 5/16/2022 | 2022 年 5 月 |
| 6/15/2022 | 2022 年 6 月 |
| 6/26/2022 | 2022 年 6 月 |
| 7/9/2022 | 2022 年 7 月 |
| 7/22/2022 | 2022 年 7 月 |
| 7/23/2022 | 2022 年 7 月 |
| 7/27/2022 | 2022 年 7 月 |
| 8/2/2022 | 2022 年 8 月 |
| 8/8/2022 | 2022 年 8 月 |
| 8/19/2022 | 2022 年 8 月 |
| 9/26/2022 | 2022 年 9 月 |
| 10/14/2022 | 2022 年 10 月 |
| 10/29/2022 | 2022 年 10 月 |

`month_name` 量值在圖表物件中的建立方式是使用 `monthname()` 函數並傳遞 `date` 欄位，作為函數的引數。

monthname 函數的圖表，圖表物件範例

monthname 函數的圖表，圖表物件範例

monthname 函數的圖表，圖表物件範例![圖表顯示使用 monthname 函數決定交易發生月份的結果。](https://help.qlik.com/zh-TW/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-monthname-chart-object.png)

`monthname()` 函數決定交易 8192 發生在 2022 年 3 月，並使用 `MonthNames` 系統變數傳回此值。