gpt4 book ai didi

DAX 公式用额外的标准找到第二个最小值

转载 作者:行者123 更新时间:2023-12-04 08:13:54 25 4
gpt4 key购买 nike

我有一个涉及两个表格的问题,一个有一些成本(表格停止在值(value)处,我已经输入了我想在我的显式度量中看到的预期值),一个是按集群排序的城市。
我需要创建一个显式度量,该度量返回给定集群和费用的第二个最小值。
成本表


日期
城市
费用
值(value)
期望值


2020年
巴黎

1
1

2020年
柏林

1
1

2020年
伦敦

2
1

2020年
纽约

0
0

2020年
巴黎
加热
1
4

2020年
柏林
加热
4
4

2020年
伦敦
加热
12
4

2020年
纽约
加热
7
7


簇表


城市



巴黎
欧洲

伦敦
欧洲

柏林
欧洲

纽约
美国


让我们取[Europe] 集群中[Electricity] 的期望值。我得到 1,因为两个最低值是 1。对于加热,我得到 4,因为第二个最小值是 4。
(出于示例的目的,纽约返回零,但集群不会只包含一个城市。)
现在,我有这段代码没有考虑费用类型和集群:

2ndMin:=minX(
topN(countrows(ALL(Costs))-1;ALL(Costs);Costs[Value])
;Costs[Value])
知道我应该如何编辑代码以包含上述两个规范吗?
谢谢 !

最佳答案

这很棘手,因为最小值的关系。解决方案是计算具有最小值的行,如果多于一个返回最小值,否则从第二个到最小值

SecondMin =
VAR CurrentCluster =
SUMMARIZE( 'Costs', 'Cluster'[Cluster] )
VAR CurrentExpense =
VALUES( Costs[Expense] )
VAR CostsPerClusterAndExpense =
CALCULATETABLE(
Costs,
CurrentCluster,
CurrentExpense,
REMOVEFILTERS( 'Cluster' ),
REMOVEFILTERS( 'Costs' )
)
VAR MinValue =
MINX( CostsPerClusterAndExpense, Costs[Value] )
VAR Min2Value =
MINX(
FILTER( CostsPerClusterAndExpense, Costs[Value] > MinValue ),
Costs[Value]
)
VAR Result =
IF(
COUNTROWS( FILTER( CostsPerClusterAndExpense, Costs[Value] = MinValue ) ) > 1,
MinValue,
Min2Value
)
RETURN
IF( NOT ISEMPTY( Costs ), Result + 0 )

关于DAX 公式用额外的标准找到第二个最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65806639/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com