Power BI/DAX查询 - 在另一个表中的范围内查找值

3
所以我有一张表,它的行是唯一的发票,其中包括供应商名称和发票成本等列,类似于:
Invoice | Vendor | Cost
AAA     | Good Co| $10
BBB     | Good Co| $15
CCC     | Best Co| $30
DDD     | Bad Co | $50

我创建了一个自定义列,为每个供应商给出了总支出:

VendorGrandTotal = 
CALCULATE(SUM('Raw Data'[Cost]),ALLEXCEPT('Raw Data','Raw Data'[Vendor]))

要获得如下结果:
Invoice | Vendor | Cost | Total
AAA     | Good Co| $10  | $25
BBB     | Good Co| $15  | $25
CCC     | Best Co| $30  | $30
DDD     | Bad Co | $50  | $50

同时我有另一张表,显示了从供应商处获得的折扣百分比,基于是否与他们的总支出在某个特定金额之上或之下。类似这样:

Vendor   | Tier 1 % | Tier 1 From | Tier 1 To | Tier 2% | Tier 2 From
Good Co  | 1%       | $0          | $20       | 2%      | $20

在这个例子中,由于与Good Co的发票的总支出超过了20美元,因此我们应该获得2%的折扣。但我不知道如何在Power BI内自动执行此操作。是否有一种方法可以在某个地方生成一个列或表格,检查发票表中的供应商是否与返利层次列表中的供应商相同,并且可以根据不同的层次检查折扣百分比,然后将该百分比作为结果返回,以便进行其他计算?

1个回答

2
我建议将您的折扣表格转换成以下格式:
Vendor   | Tier | From | To  | Rebate
Good Co  | 1    | $0   | $20 | 1%
Good Co  | 2    | $20  |     | 2%

您可以通过查找满足 VendorGrandTotal 大于 From 的最大匹配行来查找适当的折扣百分比。

作为 'Raw Data' 上的计算列,您可以这样做:

Rebate % = 
MAXX(
    FILTER(Rebates,
        Rebates[Vendor] = EARLIER([Vendor]) &&
        Rebates[From] < EARLIER([VendorGrandTotal])
    ),
    Rebates[Rebate]
)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接