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
Powerbi SUMX的基本问题_Powerbi_Dax - Fatal编程技术网

Powerbi SUMX的基本问题

Powerbi SUMX的基本问题,powerbi,dax,Powerbi,Dax,所以我试着自己制作一些仪表板。我用Excel做了一个销售数据库(随机数据) 在该数据库中,有两行包含相同的数据: 所以A列:客户编号,B列:产品编号;C:销售金额;D:日期。(列E到H I使用快速vlookup检查pbi文件显示不同总数的原因) 因此,客户296总共购买了6次产品194(=Mercury sable 2002 muave)。但这在数据库中注册了2次(假设他想要2张发票?) 每行占121.25美元->当天对客户296的总销售额为(121.25*2)=242.50美元 我使用数据透

所以我试着自己制作一些仪表板。我用Excel做了一个销售数据库(随机数据)

在该数据库中,有两行包含相同的数据:

所以A列:客户编号,B列:产品编号;C:销售金额;D:日期。(列E到H I使用快速vlookup检查pbi文件显示不同总数的原因)

因此,客户296总共购买了6次产品194(=Mercury sable 2002 muave)。但这在数据库中注册了2次(假设他想要2张发票?)

每行占121.25美元->当天对客户296的总销售额为(121.25*2)=242.50美元

我使用数据透视表进行了检查:

现在在PBI(我发现那天的总销售额比我的pivot高,正是这个数量)=

我做了一张表来检查这个,它给出了双倍的金额:484.99美元

对于“无光盘的总收入(ount)”这一指标,我使用了以下公式:

因此,sumx应该给出总销售(来自销售)和相关销售价格(通过productkey链接)之间的“somproduct”

产品194的销售价格=40.42/产品

(以下是producttable[Salesprice](从excel打印):

因此,6次销售将=242.50美元,而不是484.99美元的PBI显示

我认为SUMX公式出错是因为销售表中有两条“相同”的线

如果是这样?为什么以及如何解决这个问题(因为这可能是一个现实问题,exe客户希望通过2个po等获得2张发票或订单)

谢谢你的帮助


亲切问候,

我不会详细解释这个问题,因此请参见以下答案:

您是对的,有两个相同的行是导致问题的原因。 SUMX生成一个“行上下文”,它通过计算或调用度量值在等效的“过滤器上下文”中转换,它是一个全局过滤器

由于表中没有唯一的键,“筛选器上下文”匹配多行并计算计算。 这会在样本数据中重复N次(由于SUMX迭代器),重复两次

返回错误值的度量值(在行上下文中计算时)是[Total Unit Seld],它在每次迭代中返回6,而不是3。 您可以使用以下度量来查看它: 支票=SUMX([售出的总单位])

要避免这种情况,您有两种选择:

  • SUMX中的引用列(而不是度量值)-它应该返回正确的结果,因为它不会创建上下文转换:Revenue=SUMX(销售,'Sales'[QuantityColumn]*相关('Product'[Sale Price]))
  • 添加唯一的行id-如果源数据中没有该行id,可以在power query(添加列->索引列)中生成该行id,这将防止在发生上下文转换时匹配多行

  • 请以文本形式填写所有代码,并包括您的测量代码
    [售出的总单位]
    (我认为该测量是您的问题)。嗨,亚历克西斯,谢谢您的帮助,因为这是我的第一篇文章,您对“文本形式的所有代码”的含义是什么?售出的总单位的测量值是DAXTotal Units sall=sum(sales[售出的单位])Alexis的意思是,最好将代码作为文本而不是图像进行采样,这样更易于复制粘贴。至于您的问题,我认为在表之间的链接中存在错误。请概述表关系。嗨,Giovanni!非常感谢!我以为是这样的!我会养成在thos中添加唯一行id的习惯e‘交易’表…很高兴它有帮助。如果这确实解决了问题,请接受它作为答案