首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于月基的功率BI YTD计算

基于月基的功率BI YTD计算
EN

Stack Overflow用户
提问于 2019-11-08 11:48:48
回答 1查看 840关注 0票数 0

我对于YTD平均值的可视化有一个问题。

我在excel中有一个数据库,它链接到Power。数据库的格式如下:数据库结构需要根据数据绘制月平均值和YTD平均值。Power报告有一些切片器,因此需要选择5-6个不同的区域和5-6种不同的型号。

按月平均计算,每个周期的平均周转时间都是一样的。期间主要是一个月,但不是在同一个系统中的一个日历月。P01是十月,P02是十一月,P03是十二月.P12是九月。

因此,需要计算的是切割机仍在工作的YTD平均值:

对于P01,月平均和YTD平均值是相同的。对于P02,月平均是基于为P02报告的所有项目,但YTD平均值是如下: YTD P02 =周转时间之和除以P01和P02期间的数量之和。

对于P03,YTD应该是P01-P03期交货时间之和,除以同期的项目数量。

等为P04-P12正在进行相同的设置。

我用功率Bi来可视化月平均值,也可以计算每月的数量(计数)。

如何管理ytd将使用幂bi的计算值的图表?幂比图

每月平均数量和每月数量都存在,因此使用以下值编写函数的任务:

  • YTD P01= AVG Leadtime P01/提前期P01计数
  • YTD P02= (AVG 01* count P01 + AVG 02*count P02) / (Count P01 +count P02 )
  • YTD P03= (AVG 01* count P01 + AVG 02* count P02 + AVG 03*count P03) /(计数P01 +count P02 +count P03)

……等到P12。

有人想出解决办法了吗?提前谢谢。

加博

EN

回答 1

Stack Overflow用户

发布于 2019-11-08 12:24:49

虽然您没有使用实际日期,但您有按升序排列的值,因此应该能够使用与DAX和Power中的标准年份日期度量类似的模式。这里应该归功于DAX模式网站背后的SQLBI团队,我只是在这里定制他们的工作。

为了保持清晰,我建议把事情分解成几个步骤,为所有的准备时间和度量的计数建立年度迄今为止的度量,然后再用三分之一来给出你所需要的实际平均值。如果存在问题,单独的措施也有助于调试。

我假设您的数据表名为“MyTable”。

代码语言:javascript
复制
[TotalLeadTimeYTD] := 
CALCULATE (
    SUM('MyTable'[Leadtime]), 
    FILTER (
        ALL ( 'MyTable' ), 
        'MyTable'[FY] = MAX ( 'MyTable'[FY] )
            && 'MyTable'[Period] <= MAX ( 'MyTable'[Period] )
    )
)

和:

代码语言:javascript
复制
[CountOfMeasuresYTD] := 
CALCULATE (
    COUNTROWS('MyTable'), 
    FILTER (
        ALL ( 'MyTable' ), 
        'MyTable'[FY] = MAX ( 'MyTable'[FY] )
            && 'MyTable'[Period] <= MAX ( 'MyTable'[Period] )
    )
)

最后

代码语言:javascript
复制
AverageLeadTimeYTS := DIVIDE([TotalLeadTimeYTD],[CountOfMeasuresYTD])

请注意,因为您没有单独的日期表,所以计算的所有( 'MyTable‘)也将删除您应用的任何其他筛选器。如果这不是期望的结果,您将需要进行更改,以便移除周期和年份的过滤器,而不是其他过滤器。所有(‘MyTable’‘FY,’MyTable‘周期)都可以工作,但是我们正处在一个没有样本数据就很难编码的阶段。

上述措施已通过下列硬编码数据集进行了测试:

代码语言:javascript
复制
let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45Wcos0tFDSUQowBBKGSrE6CBEjIGGEImIMJIxhIuYYusyRdMUCAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [Column1 = _t, Column2 = _t, Column3 = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}, {"Column2", type text}, {"Column3", Int64.Type}}),
    #"Renamed Columns" = Table.RenameColumns(#"Changed Type",{{"Column1", "FY"}, {"Column2", "Period"}, {"Column3", "Leadtime"}})
in
    #"Renamed Columns"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58766015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档