我有两张桌子。 表 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 美元 |
如何创建这个计算表?
它可能看起来像:
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]))