power bi dax 修改切片器的选定值

时间:2021-05-11 14:53:47

标签: powerbi dax selectedvalue

我是 powerbi dax 的新手,如果有人能帮助我,我将不胜感激。

我有一个包含所有销售额、材料 ID、数量、客户 ID 和交货日期的销售表,一个包含客户 ID 的客户表和包含材料 ID、商定价格、协议期限和客户 ID 的合同表。< /p>

像往常一样,客户会下任何订单,但那些与特定材料签订合同的客户在一段时间内会有特价。 97% 有合同的客户有相同的客户 ID 合同和销售表,但有 3% 有合同的客户有其他合作伙伴(客户 ID 不在合同表中)也在同一合同下下订单。我设法通过合同创建了一个矩阵,其中包含合同中所有材料的所有数量、销售和交货日期。我在将合作伙伴合同下的销售额包含在矩阵中时遇到问题,因为我无法在钻取时正确修改切片器或合同矩阵中行的选定值。

我认为应该有类似的东西(也许在一个变量中):
如果 selectedvalue(customerID)="1" 然后考虑 customerID = OR(20,33,45,1);如果 selectedvalue(customer id)="13" 然后考虑 customerID = or(72,42,63);否则不要修改 selectedvalue(customerID) 将先前条件函数的原始或修改后的选定值应用于计算特定时间段内总销售额和数量的度量。

非常感谢。

2 个答案:

答案 0 :(得分:0)

这可能可以通过使用 SWITCH 函数来解决,如下所示:

Measure = 
var selVal = SELECTEDVALUE(customerID)

return
SWITCH(
    TRUE(),
    selVal in {"1", "20", "33", "45"}, CALCULATE( EXPRESSION, customerID in {"1", "20", "33", "45"} ),
    selVal in {"13", "42", "63", "72"}, CALCULATE( EXPRESSION, customerID in {"13", "42", "63", "72"} ),
    CALCULATE( EXPRESSION )
)

根据您的模型的外观,总会有更好的方法来做到这一点。但这应该基于我对数据表外观的猜测。下次请提供样本数据和模型说明。

答案 1 :(得分:0)

谢谢 OscarLabr,但您的提议无效。返回的结果和我不考虑合作伙伴的结果一样。

这是我的模型

model

示例数据将是:带有表格的可视化表格,接下来的列:"Sold-to" [Sold-to Party] ="1"(customerID 也存在于表“Unic Contracts”中); "Contract Unic Mat" [Material] ="B" (productID), 'Unic Contracts"[销售文件](该客户拥有的所有合同)。 我想从“POs”表中找到此物料 B 的所有已确认数量,在“Unic PO”表中的所有售达方的日期之间的交货日期为 Valid from 到 Valid From 为 ="1", "20", " 33”、“45”(20、33、45 不存在于“Unic 合同”中,它们是合作伙伴)特定“Unic 合同”[销售文件]。 我有一个激活的钻取选项,可以在从视觉中的表格中选择一行时提供我需要的所有结果。

对于没有合作伙伴下订单的客户 ID="2",我的模型完全有效。

希望以上信息能帮助您更好地理解我的问题。