You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

动态列QA审核数据处理:按版块计算各Participant平均分的实现难点

解决方案:动态Participant列下按版块计算平均分

完整Power Query M代码

let
    // 加载原始数据(替换为你的实际数据源步骤)
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    // 1. 动态提取所有Participant列的列名
    ParticipantColumns = List.Select(Table.ColumnNames(Source), each Text.Contains(_, "Participant")),
    // 2. 生成每个Participant列的分组聚合规则:计算该列在版块内的平均值
    AggregateExpressions = List.Transform(ParticipantColumns, (col) => {col, each List.Average(Record.FieldValues(_[col])), Percentage.Type}),
    // 3. 按Q Section分组,应用动态聚合规则
    GroupedBySection = Table.Group(Source, {"Q Section"}, AggregateExpressions),
    // 4. 调整列名匹配目标输出
    RenamedColumns = Table.RenameColumns(GroupedBySection, {{"Q Section", "Section"}})
in
    RenamedColumns

代码分步说明

  1. 捕获动态Participant列:
    用List.Select+Text.Contains自动筛选所有带"Participant"的列,不管数量多少都能适配,解决列数动态变化的问题。

  2. 动态生成聚合规则:
    对每个Participant列生成对应的聚合逻辑:指定列名、用List.Average计算版块内平均值(自动忽略null值)、设置结果为百分比类型,确保输出格式符合需求。

  3. 按版块分组聚合:
    将动态生成的聚合规则传入Table.Group,一次性完成所有Participant列的版块级平均分计算,无需手动指定每一列,完美适配动态场景。

  4. 列名对齐目标输出:
    把原"Q Section"列重命名为"Section",和你期望的输出格式完全匹配。

原有尝试的问题点

你之前的代码是对单题行计算所有Participant的平均分,而需求是对版块组计算每个Participant的平均分——聚合维度从行转向了组,且需要对每列做动态聚合,而非对每行的列做横向计算,这是核心差异。

扩展:结合版块权重计算总分

如果后续需要基于版块权重计算每个Participant的最终总分,可以在上述结果基础上继续处理:

// 示例:添加版块权重并计算加权总分
let
    // 承接上面的RenamedColumns步骤
    PreviousStep = RenamedColumns,
    // 加载版块权重表(可替换为实际数据源)
    WeightTable = Table.FromRecords({
        [Section="A", Weight=0.4],
        [Section="B", Weight=0.3],
        [Section="C", Weight=0.3]
    }),
    // 合并权重数据
    MergedWeight = Table.NestedJoin(PreviousStep, {"Section"}, WeightTable, {"Section"}, "Weight", JoinKind.LeftOuter),
    ExpandedWeight = Table.ExpandTableColumn(MergedWeight, "Weight", {"Weight"}, {"Weight"}),
    // 动态计算每个Participant的加权分并求和
    CalculateTotal = Table.AddColumn(ExpandedWeight, "Total Score", 
        each List.Sum(List.Transform(ParticipantColumns, (col) => _[col] * _[Weight])), Percentage.Type)
in
    CalculateTotal

内容的提问来源于stack exchange,提问作者Regina P.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 13:13:16