如何使用 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"
我需要将从漏洞扫描器导出的数据转换为我们能够在 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"