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

如何使用PowerQuery创建主行与子行处理漏洞扫描导出数据

该需求完全可以通过Power Query实现,具体操作流程如下:

  1. 数据导入:将你的漏洞扫描源数据导入Excel后,选中数据区域,点击「数据」选项卡→「从表格/区域」,进入Power Query编辑器。
  2. 分组聚合:按住Ctrl选中CVE和Description两列,右键选择「分组依据」,配置如下:
    • 新列名:子行集合
    • 操作:所有行
      确认后会得到每个唯一CVE+描述对应一组子行的聚合表。
  3. 拼接主行:点击「添加列」选项卡→「自定义列」,输入如下公式:
    = Table.FromRecords({[CVE = [CVE], Description = [Description], Team = null, Locations = null]}) & [子行集合]
    
    这一步会为每个CVE生成一行Team、Locations为空的主行,再把对应子行拼接在主行后面。
  4. 展开数据:点击自定义列右上角的展开按钮,取消勾选「使用原始列名作为前缀」,确认展开后,删除不需要的子行集合列,调整列顺序即可得到你需要的输出结构。

完整示例M代码

你可以直接替换数据源部分导入自己的表使用:

let
    // 替换这里的Source为你自己的数据源导入步骤
    Source = Excel.CurrentWorkbook(){[Name="源数据表"]}[Content],
    分组 = Table.Group(Source, {"CVE", "Description"}, {{"子行集合", each _, type table [CVE=nullable text, Description=nullable text, Team=nullable text, Locations=nullable text]}}),
    添加主行 = Table.AddColumn(分组, "合并数据", each Table.FromRecords({[CVE = [CVE], Description = [Description], Team = null, Locations = null]}) & [子行集合]),
    展开合并数据 = Table.ExpandTableColumn(添加主行, "合并数据", {"Team", "Locations"}, {"Team", "Locations"}),
    清理列 = Table.RemoveColumns(展开合并数据, {"子行集合"}),
    调整列顺序 = Table.ReorderColumns(清理列,{"CVE", "Description", "Team", "Locations"})
in
    调整列顺序

如果你的源数据还有风险等级等其他基础字段,只需要把这些字段一起加入分组依据的列,同时修改自定义列的记录构造部分,加入对应的字段赋值即可,逻辑完全通用。

内容的提问来源于stack exchange,提问作者Cbohn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 18:54:02