# inquarter 脚本和图表功能

此函数用于返回 True，如果 timestamp 位于包含 base\_date 的季度以内。

InQuarter (timestamp, base\_date, period\_no[, first\_month\_of\_year])

返回数据类型： 布尔值

在 Qlik Sense 中，布尔 true 值由 -1 表示，false 值由 0 表示。

`inquarter()` 函数范围的图表

`inquarter()` 函数范围的图表

`inquarter()`inquarter() 函数范围的图表 ![Diagram that shows the range of time that the inquarter() function evaluates.](https://help.qlik.com/zh-CN/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-inquarter-diagram1.png)

换句话说，`inquarter()` 函数在 1 月 1 日至 12 月 31 日期间将一年分为四个相等的季度。您可以使用 `first_month_of_year` 参数更改您的 应用程序 中被视为第一个月的月份，并且季度将根据该参数进行更改。函数 `base_date` 确定应将哪个季度用作函数的比较器。最后，该函数在将日期值与该季度段进行比较时返回布尔结果。

适合使用它的情况

`inquarter()` 函数返回布尔结果。通常，这种类型的函数将用作 `if expression` 中的条件。这将返回一个聚合或计算，具体取决于日期是否发生在所选季度。

例如，`inquarter()` 函数可用于根据设备制造日期识别季度段内制造的所有设备。

参数

| 参数 | 描述 |
| --- | --- |
| timestamp | 想要用来与 base\_date 进行比较的日期。 |
| base\_date | 日期用于计算季度的值。 |
| period\_no | 该季度可通过 period\_no 偏移。period\_no 为整数，其中值 0 表示该季度包含 base\_date。period\_no 为负数表示前几季，为正数则表示随后的几季。 |
| first\_month\_of\_year | 如果您不想从一月开始处理（财政）年，可在 first\_month\_of\_year 中指定一个介于 2 和 12 之间的值。 |

可以使用以下值在 `first_month_of_year` 参数中设置一年中的第一个月：

first\_month\_of\_year 值

| 月 | 值 |
| --- | --- |
| 二月 | 2 |
| 三月 | 3 |
| 四月 | 4 |
| 五月 | 5 |
| 六月 | 6 |
| 七月 | 7 |
| 八月 | 8 |
| 九月 | 9 |
| 十月 | 10 |
| 十一月 | 11 |
| 十二月 | 12 |

## 区域设置

除非另有规定，本主题中的示例使用以下日期格式：MM/DD/YYYY。日期格式已经在数据加载脚本中的 `SET DateFormat` 语句中指定。由于区域设置和其他因素，系统中的默认日期格式可能有所不同。您可以更改以下示例中的格式以满足您的要求。或者，您可以更改加载脚本中的格式以匹配这些示例。

应用程序中的默认区域设置基于安装 Qlik Sense 的计算机或服务器的区域系统设置。如果您访问的 Qlik Sense 服务器设置为瑞典，则数据加载编辑器将使用瑞典地区设置的日期、时间、和货币。这些区域格式设置与 Qlik Sense 用户界面中显示的语言无关。Qlik Sense 将以您正在使用的浏览器所用的相同语言显示。

函数示例

| 示例 | 结果 |
| --- | --- |
| inquarter ('01/25/2013', '01/01/2013', 0) | 返回 TRUE |
| inquarter ('01/25/2013', '04/01/2013', 0) | 返回 FALSE |
| inquarter ('01/25/2013', '01/01/2013', -1) | 返回 FALSE |
| inquarter ('12/25/2012', '01/01/2013', -1) | 返回 TRUE |
| inquarter ('01/25/2013', '03/01/2013', 0, 3) | 返回 FALSE |
| inquarter ('03/25/2013', '03/01/2013', 0, 3) | 返回 TRUE |

## 示例 1 – 没有其他参数

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

#### 加载脚本和结果

概述

打开数据加载编辑器，并将下面的加载脚本添加到新部分。

加载脚本包含：

* 包含 2022 年交易集的 数据集，该数据集加载到名为 ‘`Transactions`’ 的表中。

* 前置 Load，其中包含设置为 ‘`in_quarter`’ 字段 的 `inquarter()` 函数，并确定哪些事务发生在 2022 年 5 月 15 日的同一季度。

加载脚本

```
SET DateFormat='MM/DD/YYYY'; 

Transactions: 
    Load 
       *, 
       inquarter (date,'05/15/2022', 0) as in_quarter 
       ; 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'1/19/2022',37.23 
8189,'1/7/2022',17.17 
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`
* `in_quarter`

结果表

| 日期 | in\_quarter |
| --- | --- |
| 1/7/2022 | 0 |
| 1/19/2022 | 0 |
| 2/5/2022 | 0 |
| 2/28/2022 | 0 |
| 3/16/2022 | 0 |
| 4/1/2022 | -1 |
| 5/7/2022 | -1 |
| 5/16/2022 | -1 |
| 6/15/2022 | -1 |
| 6/26/2022 | -1 |
| 7/9/2022 | 0 |
| 7/22/2022 | 0 |
| 7/23/2022 | 0 |
| 7/27/2022 | 0 |
| 8/2/2022 | 0 |
| 8/8/2022 | 0 |
| 8/19/2022 | 0 |
| 9/26/2022 | 0 |
| 10/14/2022 | 0 |
| 10/29/2022 | 0 |

通过使用 `inquarter()` 函数，在前置 Load 语句中创建了 ‘`in_quarter`’ 字段。第一个参数标识正在评估的字段。第二个参数是 5 月 15 日的硬编码日期，用于确定要将哪个季度定义为比较器。为 `period_no` 的 `0` 是最后一个参数，它确保 `inquarter()` 函数不会比较分段四分之一之前或之后的四分之一。

以 5 月 15 日为基准日的 `inquarter()` 函数的图表

以 5 月 15 日为基准日的 `inquarter()` 函数的图表

以 5 月 15 日为基准日的 `inquarter()`inquarter() 函数的图表 ![Diagram that shows the range of time the inquarter() function evaluates with May 15 as the base date, and the year divided into quarter segments.](https://help.qlik.com/zh-CN/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-inquarter-example1-diagram.png)

4 月 1 日至 6 月 30 日结束之间发生的任何交易都将返回布尔值结果 TRUE。

## 示例 2 – period\_no

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

#### 加载脚本和结果

概述

打开数据加载编辑器，并将下面的加载脚本添加到新部分。

加载脚本包含：

* 包含 2022 年交易集的数据集，该数据集加载到名为 `Transactions` 的表中。

* 前置 Load，其中包含设置为 ‘`inquarter()`’ 字段的 `previous_quarter` 函数，并确定哪些事务发生在 2022 年 5 月 15 日所在季度之前的一个季度。

加载脚本

```
SET DateFormat='MM/DD/YYYY'; 

Transactions: 
    Load 
       *, 
       inquarter (date,'05/15/2022', -1) as previous_qtr 
       ; 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'1/19/2022',37.23 
8189,'1/7/2022',17.17 
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`
* `previous_qtr`

结果表

| 日期 | previous\_qtr |
| --- | --- |
| 1/7/2022 | -1 |
| 1/19/2022 | -1 |
| 2/5/2022 | -1 |
| 2/28/2022 | -1 |
| 3/16/2022 | -1 |
| 4/1/2022 | 0 |
| 5/7/2022 | 0 |
| 5/16/2022 | 0 |
| 6/15/2022 | 0 |
| 6/26/2022 | 0 |
| 7/9/2022 | 0 |
| 7/22/2022 | 0 |
| 7/23/2022 | 0 |
| 7/27/2022 | 0 |
| 8/2/2022 | 0 |
| 8/8/2022 | 0 |
| 8/19/2022 | 0 |
| 9/26/2022 | 0 |
| 10/14/2022 | 0 |
| 10/29/2022 | 0 |

将 `-1` 用作 `period_no` 函数中的 `inquarter()` 参数将比较器的边界向后移动四分之一。5 月 15 日属于一年的第二季度，因此该部分最初相当于 4 月 1 日至 6 月 30 日的季度。`period_no` 将此段抵消负三个月，并导致日期边界变为 1 月 1 日至 3 月 30 日。

以 5 月 15 日为基准日的 `inquarter()` 函数的图表

以 5 月 15 日为基准日的 `inquarter()` 函数的图表

以 5 月 15 日为基准日的 `inquarter()`inquarter() 函数的图表 ![Diagram that shows the range of time the inquarter() function evaluates with May 15 as the base date, and period_no set -1, moving the date boundaries back by one quarter.](https://help.qlik.com/zh-CN/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-inquarter-example2-diagram.png)

因此，1 月 1 日和 3 月 30 日之间发生的任何交易都将返回布尔值结果 TRUE。

## 示例 3 – first\_month\_of\_year

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

#### 加载脚本和结果

概述

打开数据加载编辑器，并将下面的加载脚本添加到新部分。

加载脚本包含：

* 包含 2022 年交易集的数据集，该数据集加载到名为 `Transactions` 的表中。

* 前置 Load，其中包含设置为 ‘`inquarter()`’ 字段的 `in_quarter` 函数，并确定哪些事务发生在 2022 年 5 月 15 日的同一季度。

但是在本例中，组织策略是将三月作为财政年度的第一个月。

加载脚本

```
SET DateFormat='MM/DD/YYYY'; 

Transactions: 
    Load 
       *, 
       inquarter (date,'05/15/2022', 0, 3) as in_quarter 
       ; 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'1/19/2022',37.23 
8189,'1/7/2022',17.17 
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`
* `previous_qtr`

结果表

| 日期 | previous\_qtr |
| --- | --- |
| 1/7/2022 | 0 |
| 1/19/2022 | 0 |
| 2/5/2022 | 0 |
| 2/28/2022 | 0 |
| 3/16/2022 | -1 |
| 4/1/2022 | -1 |
| 5/7/2022 | -1 |
| 5/16/2022 | -1 |
| 6/15/2022 | 0 |
| 6/26/2022 | 0 |
| 7/9/2022 | 0 |
| 7/22/2022 | 0 |
| 7/23/2022 | 0 |
| 7/27/2022 | 0 |
| 8/2/2022 | 0 |
| 8/8/2022 | 0 |
| 8/19/2022 | 0 |
| 9/26/2022 | 0 |
| 10/14/2022 | 0 |
| 10/29/2022 | 0 |

在 `3` 函数中使用 `first_month_of_year` 作为 `inquarter()` 参数将 3 月 1 日设置为一年的开始，然后将一年划分为几个季度。因此，季度细分为 3 - 5 月、6 - 8 月、9 - 11 月、12-2 月。5 月 15 日的 `base_date` 将 3-5 月季度设置为函数的比较季度。

`inquarter()` 函数的图表，3 月为一年中的第一个月

`inquarter()` 函数的图表，3 月为一年中的第一个月

`inquarter()`inquarter() 函数的图表，3 月为一年中的第一个月 ![Diagram that shows the range of time the inquarter() function evaluates with May 15 as the base date, March set as the first month of the year.](https://help.qlik.com/zh-CN/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-inquarter-example3-diagram.png)

因此，3 月 1 日至 5 月 31 日之间发生的任何交易都将返回布尔结果 TRUE。

## 示例 4 – 图表对象示例

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

#### 加载脚本和图表表达式

概述

打开数据加载编辑器，并将下面的加载脚本添加到新部分。

加载脚本包含：

* 包含 2022 年交易集的数据集，该数据集加载到名为 `Transactions` 的表中。

* 前置 Load，其中包含设置为 ‘`inquarter()`’ 字段的 `in_quarter` 函数，并确定哪些事务发生在 2022 年 5 月 15 日的同一季度。

加载脚本

```
SET DateFormat='MM/DD/YYYY'; 

Transactions: 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'1/19/2022',37.23 
8189,'1/7/2022',17.17 
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`

创建以下 度量 以计算交易是否与 5 月 15 日发生在同一季度：

`=inquarter(date,'05/15/2022', 0)`

结果表

| 日期 | in\_quarter |
| --- | --- |
| 1/7/2022 | 0 |
| 1/19/2022 | 0 |
| 2/5/2022 | 0 |
| 2/28/2022 | 0 |
| 3/16/2022 | 0 |
| 4/1/2022 | -1 |
| 5/7/2022 | -1 |
| 5/16/2022 | -1 |
| 6/15/2022 | -1 |
| 6/26/2022 | -1 |
| 7/9/2022 | 0 |
| 7/22/2022 | 0 |
| 7/23/2022 | 0 |
| 7/27/2022 | 0 |
| 8/2/2022 | 0 |
| 8/8/2022 | 0 |
| 8/19/2022 | 0 |
| 9/26/2022 | 0 |
| 10/14/2022 | 0 |
| 10/29/2022 | 0 |

通过使用 `inquarter()` 函数在图表中创建 ‘`in_quarter`’ 度量。第一个参数标识正在评估的字段。第二个参数是 5 月 15 日的硬编码日期，用于确定要将哪个季度定义为比较器。为 `period_no` 的 `0` 是最后一个参数，它确保 `inquarter()` 函数不会比较分段四分之一之前或之后的四分之一。

以 5 月 15 日为基准日的 `inquarter()` 函数的图表

以 5 月 15 日为基准日的 `inquarter()` 函数的图表

以 5 月 15 日为基准日的 `inquarter()`inquarter() 函数的图表 ![Diagram that shows the range of time the inquarter() function evaluates with May 15 as the base date, and the year divided into quarter segments.](https://help.qlik.com/zh-CN/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-inquarter-example1-diagram.png)

4 月 1 日至 6 月 30 日结束之间发生的任何交易都将返回布尔值结果 TRUE。

## 示例 5 – 场景

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

#### 加载脚本和结果

概述

打开数据加载编辑器，并将下面的加载脚本添加到新部分。

加载脚本包含：

* 加载到名为 ‘Products’ 的表中的数据集。

* 表格包含以下字段：

  * product ID

  * 产品类型

  * manufacture date

  * cost price

现已确定，由于设备错误，2022 年 5 月 15 日所在季度生产的产品存在缺陷。最终用户想要一个图表，按季度名称显示生产的产品“有缺陷”或“无缺陷”的状态以及该季度生产的产品的成本。

加载脚本

```
Products: 
Load 
* 
Inline  
[ 
product_id,manufacture_date,cost_price 
8188,'1/19/2022',37.23 
8189,'1/7/2022',17.17 
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 
]; 
```

结果

加载数据并打开工作表。创建新表并将该字段添加为维度：

=quartername(manufacture\_date)

创建以下度量：

* =if(only(InQuarter(manufacture\_date,makedate(2022,05,15),0)),'Defective','Faultless')，用于使用 inquarter() 函数识别哪些产品有缺陷，哪些无缺陷：

* =sum(cost\_price)，用于显示每个产品的成本总和。

执行以下操作：

1. 将度量的数字格式设置为金额。

2. 在外观下，关闭总计。

结果表

| quartername(manufacture\_date) | =if(only(InQuarter(manufacture\_date,makedate(2022,05,15),0)),'Defective','Faultless') | Sum(cost\_price) |
| --- | --- | --- |
| Jan-Mar 2022 | Faultless | 253.89 |
| Apr-Jun 2022 | Defective | 351.48 |
| Jul-Sep 2022 | Faultless | 446.31 |
| Oct-Dec 2022 | Faultless | 163.91 |

inquarter() 函数在评估每个产品的制造日期时返回布尔值。对于包含 5 月 15 日所在季度内生产的任何产品，inquarter() 函数返回布尔值 TRUE，并将产品标记为“缺陷”。对于返回 FALSE 值，因此未在该季度生产的任何产品，它将产品标记为“无故障”。