如何使用 Power Query 创建主行和子行

How to use PowerQuery to Create Master and Sub-Rows

我需要将从漏洞扫描器导出的数据转换为我们能够在 excel 中轻松跟踪的格式,并导出为其他团队的票务工具所需的格式。该跟踪的一部分包括一个“主行”,其中包含所有基本信息、CVE、风险评级、描述等,然后子行将需要特定项目分配给该团队以及他们负责的位置。

一些示例源数据是:

CVE Description Team Locations
CVE-2021-12345 Vuln Description 1 Ops 1, 2, 3
CVE-2021-12345 Vuln Description 1 Dev 4, 5, 6
CVE-2021-12345 Vuln Description 1 InfoSec 7, 8, 9
CVE-2021-67891 Vuln Description 2 Dev 4, 5, 6
CVE-2021-23456 Vuln Description 3 InfoSec 7, 8, 9
CVE-2021-23456 Vuln Description 3 Ops 1, 2, 3

我需要的输出应如下所示:

CVE Description Team Locations
CVE-2021-12345 Vuln Description 1
CVE-2021-12345 Vuln Description 1 Ops 1, 2, 3
CVE-2021-12345 Vuln Description 1 Dev 4, 5, 6
CVE-2021-12345 Vuln Description 1 InfoSec 7, 8, 9
CVE-2021-67891 Vuln Description 2
CVE-2021-67891 Vuln Description 2 Dev 4, 5, 6
CVE-2021-23456 Vuln Description 3
CVE-2021-23456 Vuln Description 3 InfoSec 7, 8, 9
CVE-2021-23456 Vuln Description 3 Ops 1, 2, 3

完成此操作后,我需要进行更多操作,但我已经了解了如何操作的详细信息。我目前的问题是空白行到此为止。

是否可以在电源查询中执行此操作?

在 powerquery 中试试这个。您可以使用数据加载数据...来自 table/range [x] 第一行有列 headers

单击 select CVE 和描述列,右键单击,分组依据。接受所有默认选项。那给你:

= Table.Group(Source, {"CVE", "Description"}, {{"Count", each Table.RowCount(_), type number}})

将公式栏中的内容更改为:

= Table.Group(Source, {"CVE", "Description"}, {{"data", each Table.FirstN(Table.RemoveColumns(_,{"Team", "Locations"}),1) & _, type table}})

使用新列顶部的箭头 [x] 展开团队和位置列

完整代码示例:

let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Grouped Rows" = Table.Group(Source, {"CVE", "Description"}, {{"data", each Table.FirstN(Table.RemoveColumns(_,{"Team", "Locations"}),1) & _, type table}}),
#"Expanded data" = Table.ExpandTableColumn(#"Grouped Rows", "data", {"Team", "Locations"}, {"Team", "Locations"})
in  #"Expanded data"