excel - 删除excel中前缀相同但后缀不同的条目
问题描述
我需要电子表格方面的帮助
电子表格看起来像这样:
主机名 | 一个标题 | 另一个标题 |
---|---|---|
主机 1-dns | 文字 11 | 文本 12 |
主机1-ftp | 文字 11 | 文本 12 |
主机1-ntp | 文字 11 | 文本 12 |
主机1-vip | 文字 11 | 文本 12 |
host2-dns | 文本 21 | 文本 22 |
主机2-ftp | 文本 21 | 文本 22 |
主机2-ntp | 文本 21 | 文本 22 |
host3-dns | 文本 31 | 文本 32 |
主机3-ftp | 文本 31 | 文本 32 |
主机4 | 正文 41 | 文字 42 |
host5-sans | 正文 51 | 正文 52 |
我需要创建一个表来消除重复的主机。在我的桌子上:
- host1-dns, host1-ftp, host1-ntp, host1-vip 只是一台主机,应该算一次
- 主机名(前缀)没有统一的字符数
- 后缀也没有统一的字符数
- 前缀和后缀用连字符分隔
最后,表格应如下所示:
主机名 | 一个标题 | 另一个标题 |
---|---|---|
主机1 | 文字 11 | 文本 12 |
主机2 | 文本 21 | 文本 22 |
主机3 | 文本 31 | 文本 32 |
主机4 | 正文 41 | 文字 42 |
主机5 | 正文 51 | 正文 52 |
我对任何实现、公式或宏都持开放态度。
提前致谢 :-)
解决方案
Power Query
您可以使用(在 Excel 2010+ 中可用)相当容易地做到这一点
粘贴M-Code
到高级编辑器中
在第 2 行,确保引用的表名称与原始数据表的名称相同。
请注意,标头应根据每个主机名的唯一标头数拆分为多个列。
检查Applied Steps
窗口和嵌入的注释以了解发生了什么。
M代码
let
Source = Excel.CurrentWorkbook(){[Name="tblHosts"]}[Content],
//split off the part after the hyphen
#"Split Column by Delimiter" = Table.SplitColumn(Source, "Hostname", Splitter.SplitTextByDelimiter("-", QuoteStyle.Csv), {"Hostname"}),
//Group by hostnames
#"Grouped Rows" = Table.Group(#"Split Column by Delimiter", {"Hostname"},
{{"Grouped", each _, type table [Hostname=nullable text, A header=nullable text, Another header=nullable text]}}),
//combine headers into a unique, sorted list
#"Added Custom" = Table.AddColumn(#"Grouped Rows", "Header", each
List.Sort(
List.Distinct(
List.Combine(
{Table.Column([Grouped],"A header"),
Table.Column([Grouped],"Another header")
})
))),
//split the list into a single item per column
#"Extracted Values" = Table.TransformColumns(#"Added Custom", {"Header", each Text.Combine(List.Transform(_, Text.From), ";"), type text}),
#"Split Column by Delimiter1" = Table.SplitColumn(#"Extracted Values", "Header", Splitter.SplitTextByDelimiter(";", QuoteStyle.Csv))
in
#"Split Column by Delimiter1"
推荐阅读
- python - Plotly AttributeError:“Figure”对象没有属性“update_layout”
- azure - 从 Azure 流分析的查询语言中指定属性值的列和行
- docker - 无法反序列化主题的数据
- drupal - Drupal 8 - 节点引用迁移到实体引用类型
- django - Django 休息框架。如何序列化模型名称和实例值而不是 content_type 和 object_id?
- java - 如何访问铬(或任何其他浏览器)cookie
- python - sqlalchemy 错误插入时缺少绑定参数,但在 Workbench 中有效
- javascript - RXJS如何实现平滑滚动
- r - 二进制编码子类别上的分组相对条形图
- android - 按钮的中间没有放在另一个视图的底部