# week - 指令碼與圖表函數

此函數會傳回代表對應至輸入日期之週數的整數。

語法：

week(timestamp [, first\_week\_day [, broken\_weeks [, reference\_day]]])

傳回的資料類型： 整數

引數

| 引數 | 描述 |
| --- | --- |
| timestamp | 要評估的時間戳記。 |
| first\_week\_day | 指定一週開始的日子。如果忽略，將使用變數 FirstWeekDay 的值。<br><br>first\_week\_day 可能的值是對星期一使用 0、對星期二使用 1，對星期三使用 2，對星期四使用 3，對星期五使用 4，對星期六使用 5，並對星期日使用 6。<br><br>如需系統變數的更多資訊，請參閱 [FirstWeekDay](https://help.qlik.com/zh-TW/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/FirstWeekDay.htm)。 |
| broken\_weeks | 如果您未指定 broken\_weeks，則變數 BrokenWeeks 的值將用於定義週是否中斷。<br><br>如需系統變數的更多資訊，請參閱 [BrokenWeeks](https://help.qlik.com/zh-TW/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/BrokenWeeks.htm) |
| reference\_day | 如果您不指定 reference\_day，變數 ReferenceDay 的值將用於定義要設定一月份的哪一天為參照日以定義第 1 週。依照預設，Qlik Sense 函數使用 4 作為參照日。這表示第 1 週必須包含 1 月 4 日，或者換言之，第 1 週必須始終至少在 1 月擁有 4 日。<br><br>如需系統變數的更多資訊，請參閱 [ReferenceDay](https://help.qlik.com/zh-TW/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/ReferenceDay.htm) |

`week()` 函數判定日期落在哪一週並傳回週數。

在 Qlik Sense 中，建立應用程式時會擷取地區設定，對應的設定會儲存在指令碼中，作為環境變數。這些用來決定週數。

這表示，大部分的歐洲應用程式開發人員會取得下列環境變數，對應至 ISO 8601 定義：

```
Set FirstWeekDay =0;    // Monday as first week day
Set BrokenWeeks  =0;    // Use unbroken weeks
Set ReferenceDay =4;    // Jan 4th is always in week 1
```

北美應用程式開發人員通常會取得下列環境變數：

```
Set FirstWeekDay =6;    // Sunday as first week day
Set BrokenWeeks  =1;    // Use broken weeks
Set ReferenceDay =1;    // Jan 1st is always in week 1
```

該週的第一天由 `FirstWeekDay` 系統變數決定。您可以使用 `week()` 函數中的 `first_week_day` 引數變更該週的第一天。

若應用程式使用中斷的週，則週數計數在 1 月 1 日開始，並在 `FirstWeekDay` 系統變數的前一天結束，無論發生了多少天。

若應用程式正在使用未中斷的週，則第 1 週可以在前一年或 1 月的開頭幾天開始。這取決於您如何使用 `FirstWeekDay` 和 `ReferenceDay` 環境變數。

## 什麼情況下使用

若您想要按週比較彙總，則 `The week()` 函數很實用。例如，若您想要按週查看產品的總銷售額，可使用此函數。若使用者想要計算不一定要使用應用程式的 `BrokenWeeks`、`FirstWeekDay` 或 `ReferenceDay` 系統變數時，即會選擇 `week()` 函數，而不是 `weekname()`。

例如，若您想要按週查看產品的總銷售額。

若應用程式正在使用未中斷的週，則第 1 週可能包含上一年 12 月中的日期，或排除目前年份 1 月的日期。若應用程式正在使用中斷的週，則第 1 週的天數可少於七天。

## 區域設定

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

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

以下範例假設

```
Set DateFormat= 'MM/DD/YYYY';  
Set FirstWeekDay=0;  
Set BrokenWeeks=0;   
Set ReferenceDay=4;
```

函數範例

| 範例 | 結果 |
| --- | --- |
| week('12/28/2021') | 傳回 52。 |
| week(44614) | 傳回 8，因為這是 02/22/2022 的序號。 |
| week('01/03/2021') | 傳回 53。 |
| week('01/03/2021',6) | 傳回 1。 |

## 範例 1 – 預設系統變數

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

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

概述

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

載入指令碼包含：

* 包含一組 2021 年最後一週和 2022 年前兩週交易的資料集，這載入到稱為 Transactions 的表格中。

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

* 建立欄位 week\_number，傳回交易發生年份和週數。

* 建立稱為 week\_day 的欄位，顯示每個交易日期的工作日值。

載入指令碼

```
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=6;
SET BrokenWeeks=1;
SET ReferenceDay=0;

Transactions:
    Load
        *,
        WeekDay(date) as week_day,
        Week(date) as week_number
        ;
Load
*
Inline 
[
id,date,amount
8183,12/27/2021,58.27
8184,12/28/2021,67.42
8185,12/29/2021,23.80
8186,12/30/2021,82.06
8187,12/31/2021,40.56
8188,01/01/2022,37.23
8189,01/02/2022,17.17
8190,01/03/2022,88.27
8191,01/04/2022,57.42
8192,01/05/2022,53.80
8193,01/06/2022,82.06
8194,01/07/2022,40.56
8195,01/08/2022,53.67
8196,01/09/2022,26.63
8197,01/10/2022,72.48
8198,01/11/2022,18.37
8199,01/12/2022,45.26
8200,01/13/2022,58.23
8201,01/14/2022,18.52
];
```

結果

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

* id

* date

* week\_day

* week\_number

結果表格

| id | 日期 | week\_day | 週數 |
| --- | --- | --- | --- |
| 8183 | 12/27/2021 | 星期一 | 53 |
| 8184 | 12/28/2021 | 星期二 | 53 |
| 8185 | 12/29/2021 | 星期三 | 53 |
| 8186 | 12/30/2021 | 星期四 | 53 |
| 8187 | 12/31/2021 | 星期五 | 53 |
| 8188 | 01/01/2022 | 星期六 | 1 |
| 8189 | 01/02/2022 | 星期日 | 2 |
| 8190 | 01/03/2022 | 星期一 | 2 |
| 8191 | 01/04/2022 | 星期二 | 2 |
| 8192 | 01/05/2022 | 星期三 | 2 |
| 8193 | 01/06/2022 | 星期四 | 2 |
| 8194 | 01/07/2022 | 星期五 | 2 |
| 8195 | 01/08/2022 | 星期六 | 2 |
| 8196 | 01/09/2022 | 星期日 | 3 |
| 8197 | 01/10/2022 | 星期一 | 3 |
| 8198 | 01/11/2022 | 星期二 | 3 |
| 8199 | 01/12/2022 | 星期三 | 3 |
| 8200 | 01/13/2022 | 星期四 | 3 |
| 8201 | 01/14/2022 | 星期五 | 3 |

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

沒有其他參數傳遞至函數，因此下列影響 week() 函數的預設變數已生效：

* BrokenWeeks：週計數開始於 1 月 1 日

* FirstWeekDay：每週第一天是星期日

week() 的函數圖表，使用預設系統變數

week() 的函數圖表，使用預設系統變數

week()week() 的函數圖表，使用預設系統變數![圖表顯示週函數如何將一年的日期分散為對應週數。](https://help.qlik.com/zh-TW/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-week-examples-def-sys-variables.png)

因為應用程式使用的是預設 BrokenWeeks 系統變數，所以第 1 週開始於 1 月 1 日星期六。

因為預設 FirstWeekDay 系統變數的關係，每週開始於星期六。1 月 1 日的第一個星期日發生在 1 月 2 日，亦即第 2 週開始的時候。

## 範例 2 – first\_week\_day

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

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

概述

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

載入指令碼包含：

* 建立欄位 week\_number，傳回交易發生年份和週數。

* 建立稱為 week\_day 的欄位，顯示每個交易日期的工作日值。

在此範例中，我們想要將工作週的開始設定在星期二。

載入指令碼

```
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=6;
SET BrokenWeeks=1;
SET ReferenceDay=0;

Transactions:
    Load
        *,
        WeekDay(date) as week_day,
        Week(date,1) as week_number
        ;
Load
*
Inline 
[
id,date,amount
8183,12/27/2022,58.27
8184,12/28/2022,67.42
8185,12/29/2022,23.80
8186,12/30/2022,82.06
8187,12/31/2021,40.56
8188,01/01/2022,37.23
8189,01/02/2022,17.17
8190,01/03/2022,88.27
8191,01/04/2022,57.42
8192,01/05/2022,53.80
8193,01/06/2022,82.06
8194,01/07/2022,40.56
8195,01/08/2022,53.67
8196,01/09/2022,26.63
8197,01/10/2022,72.48
8198,01/11/2022,18.37
8199,01/12/2022,45.26
8200,01/13/2022,58.23
8201,01/14/2022,18.52
];
```

結果

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

* id

* date

* week\_day

* week\_number

結果表格

| id | 日期 | week\_day | 週數 |
| --- | --- | --- | --- |
| 8183 | 12/27/2021 | 星期一 | 52 |
| 8184 | 12/28/2021 | 星期二 | 53 |
| 8185 | 12/29/2021 | 星期三 | 53 |
| 8186 | 12/30/2021 | 星期四 | 53 |
| 8187 | 12/31/2021 | 星期五 | 53 |
| 8188 | 01/01/2022 | 星期六 | 1 |
| 8189 | 01/02/2022 | 星期日 | 1 |
| 8190 | 01/03/2022 | 星期一 | 1 |
| 8191 | 01/04/2022 | 星期二 | 2 |
| 8192 | 01/05/2022 | 星期三 | 2 |
| 8193 | 01/06/2022 | 星期四 | 2 |
| 8194 | 01/07/2022 | 星期五 | 2 |
| 8195 | 01/08/2022 | 星期六 | 2 |
| 8196 | 01/09/2022 | 星期日 | 2 |
| 8197 | 01/10/2022 | 星期一 | 2 |
| 8198 | 01/11/2022 | 星期二 | 3 |
| 8199 | 01/12/2022 | 星期三 | 3 |
| 8200 | 01/13/2022 | 星期四 | 3 |
| 8201 | 01/14/2022 | 星期五 | 3 |

應用程式仍使用中斷的週。但是，first\_week\_day 引數已在 week() 函數中設定為 1。這會將每週第一天設定為星期二。

week() 函數的圖表，first\_week\_day 範例

week() 函數的圖表，first\_week\_day 範例

week()week() 函數的圖表，first\_week\_day 範例![圖表顯示週函數如何將一年的日期分散為對應週數。](https://help.qlik.com/zh-TW/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-week-examples-first-week-day.png)

應用程式使用的是預設 BrokenWeeks 系統變數，所以第 1 週開始於 1 月 1 日星期六。

week() 函數的 first\_week\_day 引數將第一週設定為星期二。因此，第 53 週開始於 2021 年 12 月 28 日。

但是，因為函數仍使用中斷的週，所以第 1 週只會持續兩天，這是 1 月 1 日後的第 1 個星期二發生在 1 月 3 日的緣故。

## 範例 3 – unbroken\_weeks

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

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

概述

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

載入指令碼包含與第一個範例相同的資料集和情境。

在此範例中，我們使用未中斷的週。

載入指令碼

```
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=6;
SET BrokenWeeks=1;
SET ReferenceDay=0;

Transactions:
    Load
        *,
        WeekDay(date) as week_day,
        Week(date,6,0) as week_number
        ;
Load
*
Inline 
[
id,date,amount
8183,12/27/2022,58.27
8184,12/28/2022,67.42
8185,12/29/2022,23.80
8186,12/30/2022,82.06
8187,12/31/2021,40.56
8188,01/01/2022,37.23
8189,01/02/2022,17.17
8190,01/03/2022,88.27
8191,01/04/2022,57.42
8192,01/05/2022,53.80
8193,01/06/2022,82.06
8194,01/07/2022,40.56
8195,01/08/2022,53.67
8196,01/09/2022,26.63
8197,01/10/2022,72.48
8198,01/11/2022,18.37
8199,01/12/2022,45.26
8200,01/13/2022,58.23
8201,01/14/2022,18.52
];
```

結果

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

* id

* date

* week\_day

* week\_number

week() 函數的圖表，圖表物件範例

week() 函數的圖表，圖表物件範例

week()week() 函數的圖表，圖表物件範例![在此處新增替代文字.....！](https://help.qlik.com/zh-TW/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-week-examples-chart-object.png)

結果表格

| id | 日期 | week\_day | 週數 |
| --- | --- | --- | --- |
| 8183 | 12/27/2021 | 星期一 | 52 |
| 8184 | 12/28/2021 | 星期二 | 52 |
| 8185 | 12/29/2021 | 星期三 | 52 |
| 8186 | 12/30/2021 | 星期四 | 52 |
| 8187 | 12/31/2021 | 星期五 | 52 |
| 8188 | 01/01/2022 | 星期六 | 52 |
| 8189 | 01/02/2022 | 星期日 | 1 |
| 8190 | 01/03/2022 | 星期一 | 1 |
| 8191 | 01/04/2022 | 星期二 | 1 |
| 8192 | 01/05/2022 | 星期三 | 1 |
| 8193 | 01/06/2022 | 星期四 | 1 |
| 8194 | 01/07/2022 | 星期五 | 1 |
| 8195 | 01/08/2022 | 星期六 | 1 |
| 8196 | 01/09/2022 | 星期日 | 2 |
| 8197 | 01/10/2022 | 星期一 | 2 |
| 8198 | 01/11/2022 | 星期二 | 2 |
| 8199 | 01/12/2022 | 星期三 | 2 |
| 8200 | 01/13/2022 | 星期四 | 2 |
| 8201 | 01/14/2022 | 星期五 | 2 |

first\_week\_date 參數設定為 1，讓星期二變成每週第一天。broken\_weeks 參數設定為 0，強制函數使用未中斷的週。最後，第三個參數將 reference\_day 設定為 2。

first\_week\_date 參數設定為 6，讓星期日變成每週第一天。broken\_weeks 參數設定為 0，強制函數使用未中斷的週。

week() 函數的圖表，範例使用未中斷的週

week() 函數的圖表，範例使用未中斷的週

week() 函數的圖表，範例使用未中斷的週![圖表顯示週函數如何將一年的日期分散為對應週數。](https://help.qlik.com/zh-TW/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-week-examples-unbroken-weeks.png)

透過使用未中斷的週，第 1 週不一定會開始於 1 月 1 日；相反地，必須至少有 4 天。因此，在資料集中，第 52 週結束於 2022 年 1 月 1 日星期六。然後第 1 週開始於 FirstWeekDay 系統變數，亦即 1 月 2 日星期日。該週會結束於後面的 1 月 8 日星期日。

## 範例 4 – reference\_day

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

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

概述

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

載入指令碼包含：

* 相同資料集和情境為第三個範例。

* 建立欄位 week\_number，傳回交易發生年份和週數。

* 建立稱為 week\_day 的欄位，顯示每個交易日期的工作日值。

此外，必須符合下列條件：

* 工作週開始於星期二。

* 公司使用未中斷的週。

* reference\_day 值是 2。換句話說，第 1 週在 1 月的最小天數為 2。

載入指令碼

```
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=6;
SET BrokenWeeks=1;
SET ReferenceDay=0;

Transactions:
    Load
        *,
        WeekDay(date) as week_day,
        Week(date,1,0,2) as week_number
        ;
Load
*
Inline 
[
id,date,amount
8183,12/27/2022,58.27
8184,12/28/2022,67.42
8185,12/29/2022,23.80
8186,12/30/2022,82.06
8187,12/31/2021,40.56
8188,01/01/2022,37.23
8189,01/02/2022,17.17
8190,01/03/2022,88.27
8191,01/04/2022,57.42
8192,01/05/2022,53.80
8193,01/06/2022,82.06
8194,01/07/2022,40.56
8195,01/08/2022,53.67
8196,01/09/2022,26.63
8197,01/10/2022,72.48
8198,01/11/2022,18.37
8199,01/12/2022,45.26
8200,01/13/2022,58.23
8201,01/14/2022,18.52
];
```

結果

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

* id

* date

* week\_day

* week\_number

結果表格

| id | 日期 | week\_day | 週數 |
| --- | --- | --- | --- |
| 8183 | 12/27/2021 | 星期一 | 52 |
| 8184 | 12/28/2021 | 星期二 | 1 |
| 8185 | 12/29/2021 | 星期三 | 1 |
| 8186 | 12/30/2021 | 星期四 | 1 |
| 8187 | 12/31/2021 | 星期五 | 1 |
| 8188 | 01/01/2022 | 星期六 | 1 |
| 8189 | 01/02/2022 | 星期日 | 1 |
| 8190 | 01/03/2022 | 星期一 | 1 |
| 8191 | 01/04/2022 | 星期二 | 2 |
| 8192 | 01/05/2022 | 星期三 | 2 |
| 8193 | 01/06/2022 | 星期四 | 2 |
| 8194 | 01/07/2022 | 星期五 | 2 |
| 8195 | 01/08/2022 | 星期六 | 2 |
| 8196 | 01/09/2022 | 星期日 | 2 |
| 8197 | 01/10/2022 | 星期一 | 2 |
| 8198 | 01/11/2022 | 星期二 | 3 |
| 8199 | 01/12/2022 | 星期三 | 3 |
| 8200 | 01/13/2022 | 星期四 | 3 |
| 8201 | 01/14/2022 | 星期五 | 3 |

first\_week\_date 參數設定為 1，讓星期二變成每週第一天。broken\_weeks 參數設定為 0，強制函數使用未中斷的週。最後，第三個參數將 reference\_day 參數設定為 2。

week() 函數的圖表，reference\_day example

week() 函數的圖表，reference\_day example

week()week() 函數的圖表，reference\_day example![圖表顯示週函數如何將一年的日期分散為對應週數。](https://help.qlik.com/zh-TW/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-week-examples-reference-day.png)

如果函數使用未中斷的週，且參數為 reference\_day 值的 2，則第 1 週只須包括 1 月的兩天。由於第一個工作日為星期二，因此第 1 週開始於 2021 年 12 月 28 日，並結束於 2022 年 1 月 3 日星期一。

## 範例 – 圖表物件範例

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

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

概述

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

載入指令碼包含與第一個範例相同的資料集和情境。

不過，在此範例中，不變的資料集會載入到應用程式中。傳回週數的計算在圖表物件中建立為量值。

載入指令碼

```
Transactions:
Load
*
Inline 
[
id,date,amount
8183,12/27/2022,58.27
8184,12/28/2022,67.42
8185,12/29/2022,23.80
8186,12/30/2022,82.06
8187,12/31/2021,40.56
8188,01/01/2022,37.23
8189,01/02/2022,17.17
8190,01/03/2022,88.27
8191,01/04/2022,57.42
8192,01/05/2022,53.80
8193,01/06/2022,82.06
8194,01/07/2022,40.56
8195,01/08/2022,53.67
8196,01/09/2022,26.63
8197,01/10/2022,72.48
8198,01/11/2022,18.37
8199,01/12/2022,45.26
8200,01/13/2022,58.23
8201,01/14/2022,18.52
];
```

結果

請執行下列動作：

1. 載入資料並開啟工作表。 建立新的表格。

2. 新增下列欄位作為維度：

   * id

   * date

3. 接下來，建立下列量值：

   =week (date)

4. 建立量值 , week\_day 以顯示每個交易日期的工作日值：

   =weekday(date)

結果表格

| id | 日期 | =week(日期) | =weekday(date) |
| --- | --- | --- | --- |
| 8183 | 12/27/2021 | 53 | 星期一 |
| 8184 | 12/28/2021 | 53 | 星期二 |
| 8185 | 12/29/2021 | 53 | 星期三 |
| 8186 | 12/30/2021 | 53 | 星期四 |
| 8187 | 12/31/2021 | 53 | 星期五 |
| 8188 | 01/01/2022 | 1 | 星期六 |
| 8189 | 01/02/2022 | 2 | 星期日 |
| 8190 | 01/03/2022 | 2 | 星期一 |
| 8191 | 01/04/2022 | 2 | 星期二 |
| 8192 | 01/05/2022 | 2 | 星期三 |
| 8193 | 01/06/2022 | 2 | 星期四 |
| 8194 | 01/07/2022 | 2 | 星期五 |
| 8195 | 01/08/2022 | 2 | 星期六 |
| 8196 | 01/09/2022 | 3 | 星期日 |
| 8197 | 01/10/2022 | 3 | 星期一 |
| 8198 | 01/11/2022 | 3 | 星期二 |
| 8199 | 01/12/2022 | 3 | 星期三 |
| 8200 | 01/13/2022 | 3 | 星期四 |
| 8201 | 01/14/2022 | 3 | 星期五 |

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

沒有其他參數傳遞至函數，因此下列影響 week() 函數的預設變數已生效：

* BrokenWeeks：週計數開始於 1 月 1 日

* FirstWeekDay：每週第一天是星期日

week() 函數的圖表，圖表物件範例

week() 函數的圖表，圖表物件範例

week()week() 函數的圖表，圖表物件範例![圖表顯示週函數如何將一年的日期分散為對應週數。](https://help.qlik.com/zh-TW/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-week-examples-def-sys-variables.png)

因為應用程式使用的是預設 BrokenWeeks 系統變數，所以第 1 週開始於 1 月 1 日星期六。

因為預設 FirstWeekDay 系統變數的關係，每週開始於星期六。1 月 1 日的第一個星期日發生在 1 月 2 日，亦即第 2 週開始的時候。

## 範例 6 – 情境

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

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

概述

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

載入指令碼包含：

* 包含一組 2019 年最後一週和 2020 年前兩週交易的資料集，這載入到稱為「Transactions」的表格中。

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

應用程式在儀表板之間主要使用中斷的週。但是，最終使用者需要使用未中斷的週按週呈現總銷售額的圖表物件。參考日應為 1 月 2 日，且每週開始於星期二。當資料模型中無法使用此維度時，在圖表中將 week() 函數作為計算維度可達成這一點。

載入指令碼

```
SET BrokenWeeks=1;
SET ReferenceDay=0;
SET DateFormat='MM/DD/YYYY';

Transactions:
Load
*
Inline 
[
id,date,amount
8183,12/27/2019,58.27
8184,12/28/2019,67.42
8185,12/29/2019,23.80
8186,12/30/2019,82.06
8187,12/31/2019,40.56
8188,01/01/2020,37.23
8189,01/02/2020,17.17
8190,01/03/2020,88.27
8191,01/04/2020,57.42
8192,01/05/2020,53.80
8193,01/06/2020,82.06
8194,01/07/2020,40.56
8195,01/08/2020,53.67
8196,01/09/2020,26.63
8197,01/10/2020,72.48
8198,01/11/2020,18.37
8199,01/12/2020,45.26
8200,01/13/2020,58.23
8201,01/14/2020,18.52
];
```

結果

請執行下列動作：

1. 載入資料並開啟工作表。 建立新的表格。

2. 建立下列計算維度：

   =week(date)

3. 接下來，建立下列彙總量值：

   =sum(amount)

4. 將量值的數字格式設定為金錢。

5. 選擇「排序」功能表，並針對計算維度移除自訂排序。

6. 取消選取「按數字排序」和「按字母排序」選項。

結果表格

| week(日期) | sum(amount) |
| --- | --- |
| 52 | $125.69 |
| 53 | $146.42 |
| 1 | $200.09 |
| 2 | $347.57 |
| 3 | $122.01 |