# SecondaryDimensionality- 图表函数

SecondaryDimensionality() 返回包含非聚合函数内容的维度透视表行数，即不包含部分总和或折叠聚合。此函数等同于水平透视表维度的 dimensionality() 函数。

语法：

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/secondarydimensionality.htm)SecondaryDimensionality( )

返回数据类型： 整数

限制：

* 除非用于透视表，否则 SecondaryDimensionality 函数始终返回 0。

* 当在图表的任何表达式中使用此图表函数时，不允许对图表中的 y 值进行排序或按表中的表达式列进行排序。因此，这些排序替代项会自动禁用。当您在可视化或表格中使用此图表函数时，可视化的排序将返回到此函数的排序输入。

## 示例 - SecondaryDimensionality 基本原理

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/secondarydimensionality.htm)

#### 图表表达式

概述

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

加载脚本包含：

* 加载到名为 `Example` 的数据表中的数据集。

* 数据表中有以下字段：

  * `Date`

  * `Product`

  * `Category`

  * `Sales`

加载脚本

```
Example:
Load * inline [
Date, Product, Category, Sales
2024-01-01, Apple, Fruit, 100
2024-01-01, Banana, Fruit, 80
2024-02-01, Apple, Fruit, 120
2024-02-01, Banana, Fruit, 90
2024-03-01, Apple, Fruit, 110
2024-03-01, Banana, Fruit, 85
];
```

结果

加载数据并打开工作表。创建一个新的透视表，并将此字段添加为行维度：

* ` Date
                                       `

将这些字段添加为列维度：

* `Category`

* `Product`

创建以下度量：

* `=Sum(Sales)`，计算总销售额。

* `=SecondaryDimensionality()`，返回维度号以演示此函数的使用。

Pivot table showing results for the dimension: Category

|  | (+) Fruit |  |
| --- | --- | --- |
| Date | Sum(Sales) | SecondaryDimensionality() |
| 2024-01-01 | 180 | 1 |
| 2024-02-01 | 120 | 1 |
| 2024-03-01 | 110 | 1 |

透视表结果只显示作为一列显示的 `Category` 维度。因此，`SecondaryDimensionality` 函数返回值 1。

如果扩展 `Category` 维度 `Fruit`，表格结果现在将包括 `Product` 维度值（`Apple` 和 `Banana` ）。

Pivot table showing results for two dimensions: Category, Product

| Date | (-) Fruit |  |  |  |
| --- | --- | --- | --- | --- |
| Apple | Banana |  |  |  |
| Sum(Sales) | SecondaryDimensionality() | Sum(Sales) | SecondaryDimensionality() |  |
| 2024-01-01 | 100 | 2 | 80 | 2 |
| 2024-02-01 | 120 | 2 | 90 | 2 |
| 2024-03-01 | 110 | 2 | 85 | 2 |

`SecondaryDimensionality` 函数现在返回值 `2` ，因为透视表中显示了两个维度的值，这两个维度为：`Category` 和 `Product`。

## 示例 - 使用 SecondaryDimensionality 在图表表达式中应用条件格式化

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/secondarydimensionality.htm)

#### 图表表达式

概述

此示例使用透视表中图表表达式中的函数，根据显示的维度级别应用条件单元格格式。

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

加载脚本包含：

* 加载到名为 `Example` 的数据表中的数据集。

* 数据表中有以下字段：

  * `Year`

  * `Quarter`

  * `Product Category`

  * `Sales`

加载脚本

```
Example:
Load * inline [
Year, Quarter, Product Category, Sales
2023, Q1, Electronics, 5000
2023, Q1, Furniture, 3000
2023, Q2, Electronics, 4000
2023, Q2, Furniture, 3500
2023, Q3, Electronics, 6000
2023, Q3, Furniture, 4500
2023, Q4, Electronics, 7000
2023, Q4, Furniture, 5000
];
```

结果

加载数据并打开工作表。创建一个新的透视表，并将此字段添加为行维度：

* ` Product Category
                                       `

将这些字段添加为列维度：

* `Year`

* `Quarter`

创建以下度量：

* `=Sum(Sales)`，计算总销售额。

在 `Sum(Sales)` 度量的属性面板中，输入以下表达式作为背景颜色表达式：

```
IF(SecondaryDimensionality() = 1,
RGB(144, 238, 144),  // Green for Year-level
RGB(173, 216, 230),  // Blue for Quarter-level
)
```

当 `SecondaryDimensionality` 函数返回 1 时，该表达式将为表单元格应用绿色背景，当函数返回任何其他结果时，将应用蓝色背景。

透视表显示一个维度的结果：单元格背景为绿色的年份年份

| 产品类别 | (+) 2023 |
| --- | --- |
| Electronics | 22000 |
| Furniture | 16000 |

结果显示，当只显示 `Year` 维度时，因此 `SecondaryDimensionality` 值为 1，`Sum(Sales)` 单元格显示为绿色背景。当您展开表格按 `Quarter` 显示 `Sum(Sales)` 时，背景现在显示为蓝色，因为有两个维度显示，分别是 `Year` 和 `Quarter` ，而 `SecondaryDimensionality` 的值现在是 `2` 。

Pivot table showing results for two dimensions: YearYear and QuarterQuarter with blue cell background

| Product Category | (-) 2023 |  |  |  |
| --- | --- | --- | --- | --- |
| Q1 | Q2 | Q3 | Q4 |  |
| Electronics | 5000 | 4000 | 6000 | 7000 |
| Furniture | 3000 | 3500 | 4500 | 5000 |