Power Query,基于指定日期范围内出现的值的平均值
Power Query, avg value based on the values appearing within a specified date range
上下文:
我有一个关于几年内进入我网站的卡车和拖车组合重量的数据集。我按季节组织了我的数据,因为我试图证明冬天的 truck:trailers 由于冰、雪和泥泞而明显更重。理论是,如果这个季节的皮重(卡车清空后的重量)高于它的平均皮重(我需要从数据中计算),可以推断出 truck:trailer 组合带来的额外重量是我们支付的一部分,因为一些 snow/ice/mud 在拖车清空过程中脱落。
到目前为止我做了什么:
- 我已经为我的季节定义了自定义日期范围
- 我按以下方式对 Truck:Trailer 进行了分组:计数以获取重复列,所有行以保留我的所有详细信息
- 我过滤掉了我见过不到 50 次的每个组合,因为我希望每个 truck:trailer 组合都有很好的表示,这样我就可以更好地强调重复的模式
- 我添加了一个索引列,以便在展开详细信息之前更好地跟踪个人
我需要做的事情:
- 我只想与 truck:trailer 组合一起工作,这些组合至少在所有四个赛季中都称重过一次
- 我需要根据夏季和秋季(一年中的干燥时间)的扩展范围找到 truck:trailer 组合的平均皮重,同时保留所有季节的原始皮重数据,如我需要最终将冬季皮重值与该平均值进行比较。
example of my data
完成后我希望数据看起来像这样
Pivot Chart
query data
对于您的第一个问题(所有季节),您可以添加一个列,其中包含每个 [Driver:Trailer] 的 [Season] 值的不同计数。然后过滤该列上的 table,仅保留 4。为此,请将以下 m 代码添加到高级编辑器中的脚本中。把in
后面的部分改成#"DistinctCount Season"
#"DistinctCount Season" = Table.Join(#"insert name previous step","Driver:Trailer",
Table.Group(#"insert name previous step", {"Driver:Trailer"},
{{"DistinctCountSeasons", each Table.RowCount(Table.Distinct(_,"Season")),
type number}}),"Driver:Trailer")
在指定位置插入上一步的名称。
第二个问题:
您可以在报告中为此使用矩阵视觉。首先创建一个度量:
[AverageTare] = AVERAGE(table'[Tare])
然后将 [Season]
放在行上,将 [AverageTare]
放在值上。您可以创建一个名为 [DrySeason] 的组(右键单击 FIELDS-pain 中的 [Season]),以组合 Spring 和 Summer.
的值
如果这对您不起作用,请探索 AVERAGEX 函数。
编辑
在 excel 中,您可以使用枢轴 table。将 [Season] 放在 Rows 上,将 [AverageTare] 放在 Values 上。右键单击数据透视表 table 中的一个值。 Select Value Field Setting
并选择 Average
。然后 select 要分组的季节,右键单击并 select Group
。
编辑 2
要在 Power Query 编辑器中添加一列以保存每行中 [Season] 的平均 [Tare],请将以下步骤添加到高级编辑器中的脚本:
#"GroupedSeasonAvg" = Table.Group(#"Insert name previous step", {"Season"}, {{"AVG", each List.Average([Tare]), type number}}),
#"JoinOnSeason" = Table.NestedJoin(#"Insert name previous step",{"Season"},GroupedSeasonAvg,{"Season"},"AVGGrouped"),
#"ExtractSeasonAVG" = Table.ExpandTableColumn(JoinOnSeason, "AVGGrouped", {"AVG"}, {"SeasonAVG"})
它的工作原理是这样的:
"GroupedSeasonAvg"
: 创建一个 table 每个 [Season] 的平均值
"JoinOnSeason"
:创建一个新列,其中 tables 将每行的 [Season] 值连接到分组 table 中的 [Season]。
#"ExtractSeasonAVG"
:展开每个table,只保留[AVG].
上下文:
我有一个关于几年内进入我网站的卡车和拖车组合重量的数据集。我按季节组织了我的数据,因为我试图证明冬天的 truck:trailers 由于冰、雪和泥泞而明显更重。理论是,如果这个季节的皮重(卡车清空后的重量)高于它的平均皮重(我需要从数据中计算),可以推断出 truck:trailer 组合带来的额外重量是我们支付的一部分,因为一些 snow/ice/mud 在拖车清空过程中脱落。
到目前为止我做了什么:
- 我已经为我的季节定义了自定义日期范围
- 我按以下方式对 Truck:Trailer 进行了分组:计数以获取重复列,所有行以保留我的所有详细信息
- 我过滤掉了我见过不到 50 次的每个组合,因为我希望每个 truck:trailer 组合都有很好的表示,这样我就可以更好地强调重复的模式
- 我添加了一个索引列,以便在展开详细信息之前更好地跟踪个人
我需要做的事情:
- 我只想与 truck:trailer 组合一起工作,这些组合至少在所有四个赛季中都称重过一次
- 我需要根据夏季和秋季(一年中的干燥时间)的扩展范围找到 truck:trailer 组合的平均皮重,同时保留所有季节的原始皮重数据,如我需要最终将冬季皮重值与该平均值进行比较。
example of my data
完成后我希望数据看起来像这样
Pivot Chart
query data
对于您的第一个问题(所有季节),您可以添加一个列,其中包含每个 [Driver:Trailer] 的 [Season] 值的不同计数。然后过滤该列上的 table,仅保留 4。为此,请将以下 m 代码添加到高级编辑器中的脚本中。把in
后面的部分改成#"DistinctCount Season"
#"DistinctCount Season" = Table.Join(#"insert name previous step","Driver:Trailer",
Table.Group(#"insert name previous step", {"Driver:Trailer"},
{{"DistinctCountSeasons", each Table.RowCount(Table.Distinct(_,"Season")),
type number}}),"Driver:Trailer")
在指定位置插入上一步的名称。
第二个问题:
您可以在报告中为此使用矩阵视觉。首先创建一个度量:
[AverageTare] = AVERAGE(table'[Tare])
然后将 [Season]
放在行上,将 [AverageTare]
放在值上。您可以创建一个名为 [DrySeason] 的组(右键单击 FIELDS-pain 中的 [Season]),以组合 Spring 和 Summer.
的值
如果这对您不起作用,请探索 AVERAGEX 函数。
编辑
在 excel 中,您可以使用枢轴 table。将 [Season] 放在 Rows 上,将 [AverageTare] 放在 Values 上。右键单击数据透视表 table 中的一个值。 Select Value Field Setting
并选择 Average
。然后 select 要分组的季节,右键单击并 select Group
。
编辑 2
要在 Power Query 编辑器中添加一列以保存每行中 [Season] 的平均 [Tare],请将以下步骤添加到高级编辑器中的脚本:
#"GroupedSeasonAvg" = Table.Group(#"Insert name previous step", {"Season"}, {{"AVG", each List.Average([Tare]), type number}}),
#"JoinOnSeason" = Table.NestedJoin(#"Insert name previous step",{"Season"},GroupedSeasonAvg,{"Season"},"AVGGrouped"),
#"ExtractSeasonAVG" = Table.ExpandTableColumn(JoinOnSeason, "AVGGrouped", {"AVG"}, {"SeasonAVG"})
它的工作原理是这样的:
"GroupedSeasonAvg"
: 创建一个 table 每个 [Season] 的平均值
"JoinOnSeason"
:创建一个新列,其中 tables 将每行的 [Season] 值连接到分组 table 中的 [Season]。#"ExtractSeasonAVG"
:展开每个table,只保留[AVG].