PowerBI DAX公式可计算前两年的平均月份

时间:2019-09-06 16:42:38

标签: powerbi dax calculated-columns

我想根据过去两年中同月的平均回报来计算当月的估计回报。 例如:

function showImage($name){
    $file = basename($name);
    $path  = 'img/'.$file;
    $mime = mime_content_type($path);
    $types = [ 'gif'=> 'image/gif', 'png'=> 'image/png', 'jpeg'=> 'image/jpeg', 'jpg'=> 'image/jpeg'];
    // if allowed type
    if(in_array($mime, $types)){        
        if(file_exists($path)){
            header('Content-type: '.$mime);
            header("Content-Length: " . filesize($path));
            //echo file_get_contents($path);           
            readfile($path);
        }       
    }
}

汇总值:

Sales       
Date        Sales    Returns
10/21/2018  500 
10/20/2018  120 
10/05/2017  546      254
10/10/2017  185      90
10/17/2016  255      120
10/8/2016   153      20

最近两年的10月平均回报率:0.4068(0.4705 + 0.3431 / 2)。我说的是%的平均值,而不是2年的总和并取%。

Sales           
Month   Sales   Returns Returns To Sales Ratio
Oct-18  620     
Oct-17  731     344     0.4705
Oct-16  408     140     0.3431

我该如何创建一种衡量标准,通过获取过去2年该月的平均回报并乘以该月的销售额,就可以得出任何月份的预期回报。

为了使事情变得简单,我创建了另一个表来获取累积销售和返回信息。

Sales           
Month       Sales   Expected Returns    
Oct-18      620     252.21   (620*0.4068)

然后我创建了一个计算列

Table1
Month   Year    Sales   Returns
Oct     2018    620 
Oct     2017    731     344
Oct     2016    408     140
Sept    2018    525     256
Sept    2017    215     154
Sept    2016    145     115
April   2018    531     258
April   2017    815     486
April   2016    158     78

我可以创建一个计算列来向我显示最近2年的平均值吗? 如果没有,如何创建度量?

1 个答案:

答案 0 :(得分:0)

我已使用汇总表查找解决方案 销售
月销售退货与销售比率 620年10月18日
17年10月731344 0.4705 16年10月408 140 0.3431

我已使用以下计算所得的列作为预期收益

***Expected Returns = var prevyrs = LOOKUPVALUE('Sales'[Returns to Sales Ratio],'Sales'[Month],DATEADD('Sales'[Month],-1,YEAR)) var lastyrs = LOOKUPVALUE('Sales'[Returns to Sales Ratio],'Sales'[Month],DATEADD('Sales'[Month],-2,YEAR)) var avgret = (prevyrs+lastyrs)/2 return IF(ISBLANK('Sales'[Returns]),avgret*'Sales'[Sales],'Sales'[Returns])*** Link of Screenshot