首页 > 解决方案 > 如何减去另一行的值取决于 PowerBI 中的类别列

问题描述

这是照片解释 在此处输入图像描述

我想在“Other Service”中显示NewLinePrice,该值会减去“Graphic Design”的值,所以第一列会显示1152245,以此类推。
到目前为止,我已经尝试定义新列“NewLinePrice”,以下是公式但不起作用

NewLinePrice =
       Var category = 'Group-dtl'[ProductCategoryName]
       var graphic_line_price = CALCULATE(SUM('Group-dtl'[LinePrice]),FILTER('Group-dtl', 'Group-dtl'[ProductCategoryName] = "Graphic Design"))
       var graphic_line_price_temp = IF(category = "Graphic Design", 'Group-dtl'[LinePrice], 0)
       //var graphic_line_price = 1
       Var pre_result = IF(category = "Other Service", 'Group-dtl'[LinePrice] - graphic_line_price, BLANK())
       Var result = IF(pre_result > 0, pre_result, BLANK())
    return result

任何人都有想法如何做到这一点?

标签: powerbidax

解决方案


我花了一些时间找到你问题的答案,最后我发现要达到你的结果,你不能在原来的范围内进行计算,而是创建一个新表,原因未知,但至少它是可以实现的,请在下面查看我的答案并接受如果有帮助,感谢我的辛勤工作:)

这是我原来的表名 [Sheet1]

在此处输入图像描述

首先,我根据原始表创建一个新表

Table = 
ADDCOLUMNS(VALUES(Sheet1[Product Name]),
                    "Sales",CALCULATE(SUM(Sheet1[Amount]),
                        FILTER(ALL(Sheet1),Sheet1[Product Name]=EARLIER(Sheet1[Product Name]))))

从新表中,我使用以下公式添加新列以仅为“其他服务”返回不同的值

New Line1 = 
Var ServiceValue = CALCULATE(MAX(Sheet1[Amount]),Sheet1[Product Name] = "Other Service")
Var graphicValue = CALCULATE(MAX(Sheet1[Amount]),Sheet1[Product Name] = "Graphic Design")
Var charge = ServiceValue - graphicValue
return
if('Table'[Product Name] = "Other Service", charge,'Table'[Sales])

这是具有更新值的新表: 在此处输入图像描述


推荐阅读