Power BI - 获取每个类别所有日期的(“运行”)最小值

问题描述 投票:0回答:1

我有两张桌子。 表 1:文章编号、类别 表2:商品编号、日期、价格

两个表根据商品编号连接。每个项目编号在表 1 中出现一次。

我需要一个计算表,其中按类别列出所有日期和最低成本值。

问题在于,并非同一类别中的所有文章都具有相同的日期。但我始终需要最小值。换句话说,如果我在 1 月 1 日的文章“A”的成本值为 10 美元,那么如果我只有 1 月 2 日文章“B”的成本数据(例如:12 美元),那么 10 美元也应该是包含在 1 月 2 日的表格中。

表1:

文章 类别
A 猫1
B 猫1
C 猫2
D 猫2
E 猫3

表2:

文章 日期 价格
A 2023年1月1日 10 美元
A 2023年1月3日 10 美元
B 2023年1月2日 12 美元
B 2023年1月3日 11 美元
B 2023年1月4日 9 美元
C 2023年1月1日 10 美元
C 2023年1月2日 10 美元
D 2023年1月1日 11 美元
D 2023年1月4日 9 美元
F 2023年1月1日 8 美元
F 2023年1月2日 9 美元
F 2023年1月3日 7 美元

表结果:

类别 日期 最低价格
猫1 2023年1月1日 10 美元
猫1 2023年1月2日 10 美元
猫1 2023年1月3日 10 美元
猫1 2023年1月4日 9 美元
猫2 2023年1月1日 10 美元
猫2 2023年1月2日 10 美元
猫2 2023年1月4日 9 美元
猫3 2023年1月1日 8 美元
猫3 2023年1月2日 8 美元
猫3 2023年1月3日 7 美元

如何创建这个计算表?

powerbi dax calculated-columns
1个回答
0
投票

它可能看起来像:

TableResult = 
  var tbl = 
    ADDCOLUMNS(
      SUMMARIZECOLUMNS('Table1'[Category], 'Table1'[Article], 'Table2'[Date] ),
      "Price",
        var thisDate = [Date]
        var thisArt = [Article]
        var fltr = FILTER('Table2', 'Table2'[Article] = thisArt && 'Table2'[Date] <= thisDate)
        return CALCULATE( MIN('Table2'[Price]), TOPN(1, fltr, [Date], DESC) )
    )
  return GROUPBY(tbl, [Category], [Date], "MinPrice", MINX(CURRENTGROUP(), [Price]))

© www.soinside.com 2019 - 2024. All rights reserved.