如何在PowerPivot中获得第二个MIN值或跨列MIN值?

时间:2013-01-24 10:35:27

标签: powerpivot dax

我有一个有趣的表格,我无法弄清楚如何获得第二个最小值或喜欢某些操作。这是我的表格的示例样式:

 Column1   Column2   Column3
   A          A          0
   A          C         11
   A          D          7
   B          X         11
   B          B          0
   A          E          5
   B          Y         17
   A          F          4

我需要在Column3中找到每个A或B(来自Column1)的最小值。但是在此MIN计算中不应包括A = A(column1 = column2)或B = B行。但是,在A = A或A的最小值上显示的A的值应显示在B = B行上。

还尝试了这个计算:

如果([列1]<>列2],CALCULATE(的 MIN ([栏3]),ALL(myTable的),为myTable [列2] = EARLIER(myTable的[列2])) ,0) - >从Column3为每行返回相同的值。

如果([列1] = [列2],CALCULATE(的 MIN ([栏3]),ALL(myTable的),为myTable [列2] = EARLIER(myTable的[列2])),0) - >从Column3为每个A = A或B = B行正确返回最小值。 A = A或B = B行包含数据,因为值为0.如果我将其更改为1,则为此计算返回1。但我需要其他行最小值。

如果([列1] = [列2],CALCULATE(的 MAX ([栏3]),ALL(myTable的),为myTable [column1的] = EARLIER(myTable的[column1的])),0) - >这个计算就像MAX值的魅力一样。因为最高值总是在其他行中。

P.S:A = A或B = B行,Column3中的默认值始终为0。

我坚持这一点= /谢谢你。

1 个答案:

答案 0 :(得分:0)

使用(在计算列中):

=CALCULATE(MIN([Column3]),FILTER(myTable,myTable[Column1]=EARLIER(myTable[Column1])),myTable[bColumn])

其中myTable [bColumn]是计算列

=myTable[Column1]<>myTable[Column2]

如果您希望公式采用度量而非计算列,请使用:

= CALCULATE(MIN([栏3]),FILTER(ALL(myTable的),COUNTROWS(FILTER(myTable的,为myTable [column1的] = EARLIER(myTable的[column1的])))),为myTable [bColumn])

HTH!