Powerbi 以月为单位的功率双YTD计算
我对YTD平均值的可视化有一个问题 我有一个excel数据库,它链接到Power BI。数据库的格式如下: 需要绘制的是基于数据的月平均值和年初至今平均值。Power BI报告有一些切片器,因此需要选择5-6个不同的区域和5-6个不同的模型类型 Montly average与每个周期的交付周期显示平均值一起工作。 期间主要是一个月,但与日历月不在同一系统中。P01是十月,P02是十一月,P03是十二月。。。。P12是九月 因此,需要计算切片机仍在工作的YTD平均值: 对于P01,月平均值和年初至今平均值相同。 对于P02,月度平均值基于P02报告的所有项目,但年初至今的平均值如下: 年初至今P02=提前期之和除以P01和P02期间数量之和 对于P03,YTD应为P01-P03期间的交付周期之和除以同期的项目数量 对于P04-P12,正在进行相同的设置 我使用power Bi来显示月平均值,还可以计算月数量(计数) 我如何管理ytd将使用功率bi计算值的图形? 存在月平均数和月平均数,因此任务需要使用以下值编写函数:Powerbi 以月为单位的功率双YTD计算,powerbi,dax,powerbi-desktop,Powerbi,Dax,Powerbi Desktop,我对YTD平均值的可视化有一个问题 我有一个excel数据库,它链接到Power BI。数据库的格式如下: 需要绘制的是基于数据的月平均值和年初至今平均值。Power BI报告有一些切片器,因此需要选择5-6个不同的区域和5-6个不同的模型类型 Montly average与每个周期的交付周期显示平均值一起工作。 期间主要是一个月,但与日历月不在同一系统中。P01是十月,P02是十一月,P03是十二月。。。。P12是九月 因此,需要计算切片机仍在工作的YTD平均值: 对于P01,月平均值和年初至
- 年初至今P01=平均交付周期P01/交付周期P01计数
- 年初至今P02=(平均P01*计数P01+平均P02*计数P02)/(计数P01+计数P02)
- 年初至今P03=(平均P01*计数P01+平均P02*计数P02+平均P03*计数P03)/ (计数P01+计数P02+计数P03)
Gabor当您不使用实际日期时,您的值是按升序排列的,因此应该能够使用与DAX和Power BI中的标准年初至今度量类似的模式。这里的功劳应该归于SQLBI团队,我只是在这里定制他们的工作 为了保持清楚,我建议将事情分解成几个步骤,为总交付周期和测量计数构建一年到目前为止的度量,然后再构建三分之一以给出您需要的实际平均值。如果出现问题,单独的措施也有助于调试 我假设您的数据表名为“MyTable”
[TotalLeadTimeYTD] :=
CALCULATE (
SUM('MyTable'[Leadtime]),
FILTER (
ALL ( 'MyTable' ),
'MyTable'[FY] = MAX ( 'MyTable'[FY] )
&& 'MyTable'[Period] <= MAX ( 'MyTable'[Period] )
)
)
请注意,由于您没有单独的日期表,因此计算的所有(‘MyTable’)也将删除您应用的任何其他过滤器。如果这不是期望的结果,您将需要更改,以便删除期间和年份的过滤器,而不是其他过滤器。ALL('MyTable'[FY],'MyTable'[Period])可能有效,但如果没有样本数据,我们很难编写代码
已针对以下硬编码数据集对上述措施进行了测试:
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"
这可能是一个很好的起点:嗨,BarneyL,谢谢你的快速回答,但是在&&i的TotalEadTimeYTD度量中,我无法选择正确的列。它不会出现在列表中。我可以在excel电子表格中包含样本数据,如果这有帮助的话。样本数据可能会有帮助,但您能澄清一下不能选择正确的列是什么意思吗?如果只键入所需内容,会发生什么情况?我已使用硬编码数据集的电源查询代码进行了更新。复制和粘贴中的度量值可以得到我认为准确的结果。
AverageLeadTimeYTS := DIVIDE([TotalLeadTimeYTD],[CountOfMeasuresYTD])
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"