Dimensionality - 图表函数
Dimensionality() 用于返回当前行的维度数量。在透视表中,此函数返回包含非聚合内容的总维度列数,即不包含部分总和或折叠聚合。
语法:
Dimensionality ( )
返回数据类型: 整数
限制:
此函数仅可用于图表。对于除透视表之外的所有图表类型,它会返回除总计之外的所有行的维度数,即 0。
当在图表的任何表达式中使用此图表函数时,不允许对图表中的 y 值进行排序或按表中的表达式列进行排序。因此,这些排序替代项会自动禁用。当您在可视化或表格中使用此图表函数时,可视化的排序将返回到此函数的排序输入。
示例:使用维数的图表表示
概览
将透视表中的 Dimensionality 函数用作图表表达式,其中您可以根据具有非聚合数据的行中的维度数量应用不同的单元格格式。此示例将背景颜色应用于与给定条件匹配的表单元格。
打开数据加载编辑器,并将下面的加载脚本添加到新部分。
加载脚本包含:
-
加载到名为 Example 的数据表中的数据集。
-
数据表中有以下字段:
-
Country
-
Product
-
Sales
-
Budget
-
加载脚本
Example:
Load * inline [
Country, Product, Sales, Budget
Sweden, AA, 100000, 50000
Germany, AA, 125000, 175000
Canada, AA, 105000, 98000
Norway, AA, 74850, 68500
Ireland, AA, 49000, 48000
Sweden, BB, 98000, 99000
Germany, BB, 115000, 175000
Norway,BB,71850,68500
Ireland,BB,31000,48000
] (delimiter is ',');
有关使用内联加载的详细信息,请参阅使用内联加载来加载数据。
结果
加载数据并打开工作表。创建一个新的透视表,并将这些字段添加为行维度:
-
Country
-
Product
创建以下度量:
-
=Sum(Sales),用于计算 Sales 值的总和。
-
=Sum(Budget),用于计算 Budget 值的总和。
-
=Dimensionality(),用于返回当前行的维度数。
在 Sum(Sales) 度量的属性面板中,输入以下表达式作为背景颜色表达式:
=If(Dimensionality()=1 and Sum(Sales)<Sum(Budget),RGB(255,156,156),
If(Dimensionality()=2 and Sum(Sales)<Sum(Budget),RGB(178,29,29)
)
)
当满足适用条件时,背景颜色表达式的输出将浅红色或深红色单元格背景应用于表格单元格。
Country | |||
---|---|---|---|
Product | |||
Sum(Sales) | Sum(Budget) | Dimensionality() | |
(+) Canada | 105000 | 98000 | 1 |
(-) Germany | 240000 | 350000 | 1 |
AA | 125000 | 175000 | 2 |
BB | 115000 | 175000 | 2 |
(+) Ireland | 80000 | 96000 | 1 |
(+) Norway | 146700 | 137000 | 1 |
(+) Sweden | 198000 | 149000 | 1 |
当显示第一行维度 (Country) 时,Dimensionality 函数返回 1。当展开行维度(如 Germany)以显示第二个行维度 (Product) 时,函数会返回 2。
度量 Sum(Sales) 的背景颜色表达式基于维度和销售额进行计算,以突出不同的结果。当维度为 1 时, 小于 Sum(Budget) 的任何带 Sum(Sales) 的 Country 都显示为浅红色,本例中为 Germany 和 Ireland。当维度为 2 时, 小于 Sum(Budget) 的任何带 Sum(Sales) 的 Product 都显示为暗红色,本例中为 Germany 的 AA 和 BB。
示例 – Dimensionality 场景
概览
本例使用 Dimensionality 函数将详细信息应用到报告中,并高亮显示某些维度的表格单元格。
打开数据加载编辑器,并将下面的加载脚本添加到新部分。
加载脚本包含:
-
加载到名为 Example 的数据表中的数据集。
-
数据表中有以下字段:
-
Region
-
SalesProduct
-
Year
-
SalesValue
-
Quantity
-
Product
-
加载脚本
Example:
LOAD * INLINE [
Region, SalesProduct, Year, SalesValue, Quantity, Profit
North, Laptop, 2023, 20000, 15, 4000
North, Mobile, 2023, 15000, 25, 3000
North, Laptop, 2022, 18000, 20, 3500
North, Mobile, 2022, 14000, 22, 2800
South, Laptop, 2023, 22000, 18, 4500
South, Mobile, 2023, 16000, 27, 3200
South, Laptop, 2022, 19000, 19, 3800
South, Mobile, 2022, 15000, 23, 3100
East, Laptop, 2023, 21000, 16, 4200
East, Mobile, 2023, 15500, 24, 3100
East, Laptop, 2022, 18500, 18, 3900
East, Mobile, 2022, 14500, 21, 2950
West, Laptop, 2023, 23000, 17, 4700
West, Mobile, 2023, 16500, 26, 3300
West, Laptop, 2022, 19500, 20, 4000
West, Mobile, 2022, 15500, 24, 3100
North, Tablet, 2023, 12000, 10, 2500
South, Tablet, 2023, 13000, 12, 2700
East, Tablet, 2023, 12500, 11, 2600
West, Tablet, 2023, 13500, 13, 2800
];
结果
加载数据并打开工作表。创建一个新的透视表,并将这些字段添加为行维度:
-
Year
-
SalesProduct
-
Region
创建以下度量:
-
=If(Dimensionality()=1, 'Total', 'Detail'),用于表示其为 Total 还是 Detail 行。
-
=If(Dimensionality()=3, 'Region-Level', If(Dimensionality()=2, 'Product-Level', 'Summary-Level')),用于表示正在显示的维度级别。
-
=Sum(SalesValue),用于计算销售额的总和。
在 Sum(SalesValue) 度量的属性面板中,输入以下表达式作为背景颜色表达式:
=If(Dimensionality()=1, LightGray())
当维度为 1 时,背景颜色表达式的输出将浅灰色单元格背景应用于表单元格。
Year | |||
---|---|---|---|
SalesProduct | |||
Region | |||
If(Dimensionality()=1, 'Total', 'Detail') | If(Dimensionality()=3, 'Region-Level', If(Dimensionality()=2, 'Product-Level', 'Summary-Level')) | Sum(SalesValue) | |
(+) 2022 | Total | Summary-Level | 134000 |
(-) 2023 | Total | Summary-Level | 200000 |
(-)Laptop | Detail | Product-Level | 86000 |
East | Detail | Region-Level | 21000 |
North | Detail | Region-Level | 20000 |
South | Detail | Region-Level | 22000 |
West | Detail | Region-Level | 23000 |
(-) Mobile | Detail | Product-Level | 63000 |
(-) Tablet | Detail | Product-Level | 51000 |
您可以看到 Dimensionality 函数如何用于增强报告的细节,并突出显示所有顶层行维度。