Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powerbi Power BI/DAX查询-根据另一个表上的范围查找值_Powerbi_Dax - Fatal编程技术网

Powerbi Power BI/DAX查询-根据另一个表上的范围查找值

Powerbi Power BI/DAX查询-根据另一个表上的范围查找值,powerbi,dax,Powerbi,Dax,所以我有一个表,它的行是唯一的发票,列中有供应商名称和发票成本,类似于: Invoice | Vendor | Cost AAA | Good Co| $10 BBB | Good Co| $15 CCC | Best Co| $30 DDD | Bad Co | $50 Vendor | Tier 1 % | Tier 1 From | Tier 1 To | Tier 2% | Tier 2 From Good Co | 1% | $0

所以我有一个表,它的行是唯一的发票,列中有供应商名称和发票成本,类似于:

Invoice | Vendor | Cost
AAA     | Good Co| $10
BBB     | Good Co| $15
CCC     | Best Co| $30
DDD     | Bad Co | $50
Vendor   | Tier 1 % | Tier 1 From | Tier 1 To | Tier 2% | Tier 2 From
Good Co  | 1%       | $0          | $20       | 2%      | $20
并创建了一个自定义列,以提供每个供应商的总开支:

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
同时,我还有另一个表格,根据供应商的总花费是否高于或低于某个金额,描述了供应商的回扣百分比。比如:

Invoice | Vendor | Cost
AAA     | Good Co| $10
BBB     | Good Co| $15
CCC     | Best Co| $30
DDD     | Bad Co | $50
Vendor   | Tier 1 % | Tier 1 From | Tier 1 To | Tier 2% | Tier 2 From
Good Co  | 1%       | $0          | $20       | 2%      | $20
……等等


因此,在这个例子中,我们应该得到2%的回扣,因为良好Co发票的总花费加起来超过20美元。但如何在Power BI中自动执行这一点让我感到困惑。是否有一种方法可以在某个地方生成一列或表格,检查发票表格中的供应商是否与返利层级列表中的供应商相同,并可以对照不同层级查看返利的百分比,并返回该百分比作为其他计算的结果?

我建议取消您的发票折扣表改为如下所示:

Vendor   | Tier | From | To  | Rebate
Good Co  | 1    | $0   | $20 | 1%
Good Co  | 2    | $20  |     | 2%
然后,您可以通过取最大匹配行(其中
vendorgandtotal
大于
From
)来查找适当的折扣百分比

作为
“原始数据”
上的计算列,您可以执行以下操作:

Rebate % = 
MAXX(
    FILTER(Rebates,
        Rebates[Vendor] = EARLIER([Vendor]) &&
        Rebates[From] < EARLIER([VendorGrandTotal])
    ),
    Rebates[Rebate]
)
返利%=
马克斯(
过滤(回扣、,
回扣[供应商]=早期([供应商])&&
回扣[来自]<早期([VendorGrandTotal])
),
回扣[回扣]
)