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/jquery-ui/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 获取我根据销售日期支付的成本,并使用度量_Powerbi_Dax - Fatal编程技术网

Powerbi 获取我根据销售日期支付的成本,并使用度量

Powerbi 获取我根据销售日期支付的成本,并使用度量,powerbi,dax,Powerbi,Dax,我努力完成这项工作,在搜索时筋疲力尽,但找不到它,所以我会在这里碰碰运气 我有两个表,第一个表包含我为产品支付的费用和日期。第二个是我的销售额,包括我销售的产品代码、销售日期和价格 它们看起来像下面的两个: 表A-费用 CODE DATE COSTPAID A 02/07/2020 $2,50 B 19/07/2020 $12,50 B 10/08/2020 $13,50 A 26/08/2020 $

我努力完成这项工作,在搜索时筋疲力尽,但找不到它,所以我会在这里碰碰运气

我有两个表,第一个表包含我为产品支付的费用和日期。第二个是我的销售额,包括我销售的产品代码、销售日期和价格

它们看起来像下面的两个:

表A-费用

CODE    DATE          COSTPAID
A       02/07/2020    $2,50
B       19/07/2020    $12,50
B       10/08/2020    $13,50
A       26/08/2020    $3
表B-销售

CODE    DATE          PRICESOLD
A       05/07/2020    $5
A       28/08/2020    $5
B       25/07/2020    $25
B       16/08/2020    $25
我希望有一个度量,或一个列,它给出了我根据销售日期支付的最后一次成本,如下面销售表中的示例:

CODE    DATE          PRICESOLD     COSTPAID
A       05/07/2020    $5            $2,5
A       28/08/2020    $5            $3
B       25/07/2020    $25           $12,5
B       16/08/2020    $25           $13,5
我得到的最接近的结果是使用以下代码编写了一个列,但它溢出了:

LASTCOSTPAID =
CALCULATE (
    MAX ( COSTS[DATE] ),
    FILTER ( COSTS, COSTS[DATE] <= SALES[DATE] && COSTS[CODE] = SALES[CODE] )
)
lastcostpayed=
算计(
最大值(成本[日期]),

筛选(COSTS,COSTS[DATE]您可以从何处接近。您首先需要检索销售前日期的成本日期。找到此lastCostDate后,您可以再次筛选该表

LastCostPaid = 
    var curCode = Sales[CODE]
    var curDate = Sales[DATE]
    var lastCostDate =  CALCULATE(MAX(Cost[DATE]), FILTER(Cost, curDate >= Cost[DATE] && curCode = Cost[CODE]))
return CALCULATE(SELECTEDVALUE(Cost[COSTPAID]), FILTER(Cost, curCode = Cost[CODE] && lastCostDate = Cost[DATE]))

您发布的代码中的主要问题是,您得到的不是成本,而是日期

若要处理在同一天找到多个价格的情况,我们可以使用MAX来获取当天的最高价格。若要查找最后一天,我们可以使用CALCULATETABLE中的LASTDATE函数来更改筛选竞赛,使其仅包含截至当前销售[日期]的日期。然后,我们还需要对产品代码进行筛选

LASTCOSTPAID =
    CALCULATE(
        MAX( COSTS[COSTPAID] ),
        COSTS[CODE] = SALES[CODE],
        CALCULATETABLE(
            LASTDATE( COSTS[DATE] ),
            COSTS[DATE] <= SALES[DATE]
        )
    )
lastcostpayed=
算计(
最大值(成本[已支付成本]),
成本[代码]=销售[代码],
可计算(
最后日期(成本[日期]),
成本[日期]这可能有助于: