首页 > 解决方案 > SSAS MDX 计算度量 - [ITEMS] 的 COUNT 个。[Item] 分组 [Items].[Item Group]

问题描述

在连接到 SSAS 的 Excel 中,我正在尝试构建数据透视表并使用“OLAP 工具”和/或“OLAP 数据透视表扩展”添加自定义度量计算。我正在尝试添加一个我认为非常简单的计算,但我无法让它工作。我需要的计算是:

目标:按任何 [Items] 维度字段分组的 [Items] 维度记录的记录计数。

特别是我正在尝试按[Items].[Items Groups]and分组[Items].[Item]。项目是最低的粮食,所以计数应该返回值“1”。我已经创建了一些在球场上的计算(见下文)。但是计算似乎没有按预期工作。

我试过的:

尝试#1——[Measures].[Items Count (With net amount values)]

DISTINCTCOUNT( {[Items].[Item].MEMBERS} )

calc 'Items Count (With net amount values)' 似乎返回了一个不错的计数值,但它似乎只在发现跨国记录时才计算项目(不知道为什么)。此外,当处于最低粒度级别时,计算返回父组的该值,而不是在行上选择的维度级别。

尝试#2——[Measures].[Items Count (All)]

[Items].[Item].[Item].Count

无论放置在行上的维度级别如何,此计算都会返回整个维度的 TOTAL 项目计数。

尝试#3——[Measures].[Items Count]

COUNT ( { [Items].[Item].MEMBERS}, EXCLUDEEMPTY)

这个计算冻结了 Excel,我必须退出 Excel。不知道为什么。我在几个不同的网站上看到过推荐的这个 sytnax。

截屏:

请帮忙?这看起来很简单,但我对 MDX 不是很熟练。在 DAX 和 SSAS TABULAR 中,这将是非常简单的表达式。但我正在努力计算 SSAS MD 中 MDX 的行数。

“外购牛肉”组有18个有交易的项目,但总共有41个项目。我不知道如何计算“41”值。

SSAS Excel-CalcMeasure-CountRows.png

在此处输入图像描述

标签: excelssasmdxolapolap-cube

解决方案


查看 AdventureWorks 上的以下示例。

with member [Measures].[CountTest]
as 
count(existing  [Product].[Subcategory].members - [Product].[Subcategory].[All])
select 
{
[Measures].[Internet Sales Amount],[Measures].[CountTest]
}
on columns,
{
([Product].[Category].[Category]
,[Product].[Subcategory].[Subcategory] -- comment this line for the second result
)
}
on rows 
from [Adventure Works]

在此处输入图像描述

现在注释父视图的指示行。

在此处输入图像描述


推荐阅读