我有一个 3 级矩阵:
一级经销商;
二级合约名称;
第三级年份层次结构:年、季度和月。
我有措施
Revenue = SUM ( 'Fact Invoice'[Invoice Amount] )
我创建了收入度量作为过滤器源视频:
我创建了一个计算表:
Revenue Filter = GENERATESERIES(0, [Revenue], 100)
然后创建了这个措施:
Revenue Filter Measure = VAR MinValue = MIN ( 'Revenue Filter'[Value] )
VAR MaxValue = MAX ( 'Revenue Filter'[Value] )
VAR currentMeasure = [Revenue]
RETURN IF ( currentMeasure >= MinValue && currentMeasure <= MaxValue, 1, 0 )
在视觉过滤器中,我将这个measure设置为1,以便切片器可以过滤矩阵,并且它正在过滤。
问题是它无法正确显示数据。
我尝试创建此措施:
Revenue Filter AGG measure =
VAR MinValue =
MIN ( 'Revenue Filter'[Value] )
VAR MaxValue =
MAX ( 'Revenue Filter'[Value] )
VAR currentMeasure = [Revenue]
--VAR CurrentContract = MAX('Dim Contract'[Contract Intermediary Account Name 1])
RETURN
IF (
ISINSCOPE('Dim Contract'[Contract Intermediary Account Name 1]),
CALCULATE(
IF (
currentMeasure >= MinValue && currentMeasure <= MaxValue,
1,
0
),
ALL('Date')
)
,0
)
然后在过滤器窗格中对其进行过滤= 1,为我提供正确的过滤值,但没有成功。
如下图所示,对于经销商 3,它是正确的,因为总数介于我在切片器中设置的值之间(2k - 5k 之间)。
但对于经销商 1 和 2 来说,这是不正确的,因为总数大于我在切片器中过滤的值。但是,由于其他级别的值与收入过滤器匹配,因此它们会出现。
也就是说,对于经销商 1,一切都应该为 0,因为总数与收入切片器过滤不对应。
经销商3也可能出现同样的问题,例如一个月300欧元,一月2891.36欧元,二月300欧元;这 300 欧元的价值也不应该出现。
样本数据:
Reseller,Contract Hierarchy,Year,Quarter,Month,Revenue
Reseller 2,Contract_1,2023,Q1,March,€ 3 692,09
Reseller 2,Contract_1,2023,Q1,February,€ 3 508,58
Reseller 3,Contract_3,2023,Q1,January,€ 2 891,36
Reseller 1,Contract_2,2023,Q2,May,€ 2 869,66
Reseller 2,Contract_2,2023,Q4,November,€ 2 187,18
Reseller 3,Contract_2,2023,Q4,October,€ 2 146,18
任何人都可以帮助我实现这个目标吗?
非常感谢!
解决方案:
Revenue Filter AGG measure =
VAR MinValue = MIN ( 'Revenue Filter'[Value] )
VAR MaxValue = MAX ( 'Revenue Filter'[Value] )
VAR _currentRe = SELECTEDVALUE('Table'[Reseller])
VAR currentMeasure = [Revenue]
VAR _sumRe = CALCULATE(
currentMeasure,
FILTER(
ALLSELECTED('Table'),
'Table'[Reseller] = _currentRe
)
)
RETURN
IF(
_sumRe <= _maxValue && _sumRe >= _minValue,
IF(
currentMeasure <= _maxValue && currentMeasure >= _minValue,
1,
0
),
0
)
结果如下: