我有一张带有学生证的表格(1-11),它们重复5次,每个学生在3个科目中有5个年级。我的任务是在表格中创建3个新列,其中每3个科目的每个学生的平均值。我的问题是我不知道该怎么做,因为我的教授要求全班同学以这种非常奇怪的方式来做这件事,这使得很难弄清楚该怎么做。
如图所示,这是表格的一个非常奇怪的设置。 我的问题正如我之前描述的那样。我需要用每位学生的平均成绩来创建3个新列,每个科目的5个年级。
答案 0 :(得分:0)
您可以按ID将表格的副本分组,并按等级对列进行平均,然后将其与原始表格合并。
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlTSAWNjpVgdCM8IiE3gPGMgNgXzjMAsHSULOM8MiC3hPHOQSQZKsbEA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [id = _t, gradeA = _t, gradeB = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"id", Int64.Type}, {"gradeA", Int64.Type}, {"gradeB", Int64.Type}}),
Buffer1 = Table.Buffer(#"Changed Type"),
grouped =
let
sourceGroup = Buffer1,
grouped = Table.Group(sourceGroup,"id",{{"AVGgradeA", each List.Average([gradeA]), type nullable number}, {"AVGgradeB", each List.Average([gradeB]), type nullable number}})
in
grouped,
#"join" = Table.Join(Buffer1,"id",grouped,"id")
in
#"join"