答案1
这需要一点准备工作。
- 第一个 Excel 应该是这样的:
- 第二个:
这些编辑很容易通过选择空白技巧取消合并,使用公式 +ctrl + enter 查看这里如果你不知道如何
然后,您需要在第一列中添加一个附加列,公式如下:=B8&" : "&C8 这将返回“Inst tag -a : Constraint pt-a”。然后,您需要一个数组公式来匹配我们用其各自服务器创建的第三列中的每个值。数组公式,按 CTRL+SHIF+ENTER 键输入!=VLOOKUP(D8,IF($A$20:$A$27=A8,$B$20:$C$27),2,FALSE)
$b$20:$c$27 是您使用“inst tag...”进行 vlookup 所需的数据。
$A$20:$A$27 应该是第二个文件中引用 System 的位置。
而 A8 是第一个文件中此行引用 System 的位置。
然后...瞧...它起作用了...
如果你是新手的话,这会相当复杂,所以如果你能做到的话请告诉我。
答案2
您可以使用Power Query
适用于 Excel 2010+
一旦您开发了此查询,您就可以在添加新数据时轻松更新/刷新。
- 从 Excel:从表/区域获取数据(或 Excel 2010-2013 中的等效项)
- 在 PQ 编辑器中:选择
Subsystem
列并Fill --> Down
- *这将填写第一列的空白行
- 选择第 2 列和第 3 列
- 合并以
" : "
作为分隔符的列
- 合并以
- 选择第 1 列
- 通过...分组
- 新列名称已合并
- 手术: 所有行
- 通过...分组
- 添加列
- 公式:=Table.Column([Grouped],"Merged")
选择新的“自定义”列顶部的双向箭头
- 提取值
- 使用特殊字符连接:#(如果) 这是换行符
关闭并加载
在 Excel 工作表上 - 将第 1 列格式化为垂直居中 - 将第 2 列格式化为自动换行
除了输入自定义列的公式外,所有操作都可以从 UI 中完成。但这是 M 代码:
M 代码
let
Source = Excel.CurrentWorkbook(){[Name="Table4"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Subsystem No.", type text}, {"Inst. Tag", type text}, {"Constraint", type text}}),
#"Filled Down" = Table.FillDown(#"Changed Type",{"Subsystem No."}),
#"Merged Columns" = Table.CombineColumns(#"Filled Down",{"Inst. Tag", "Constraint"},Combiner.CombineTextByDelimiter(" : ", QuoteStyle.None),"Merged"),
#"Grouped Rows" = Table.Group(#"Merged Columns", {"Subsystem No."}, {{"Grouped", each _, type table [#"Subsystem No."=text, Merged=text]}}),
#"Added Custom" = Table.AddColumn(#"Grouped Rows", "Custom", each Table.Column([Grouped],"Merged")),
#"Extracted Values" = Table.TransformColumns(#"Added Custom", {"Custom", each Text.Combine(List.Transform(_, Text.From), "#(lf)"), type text})
in
#"Extracted Values"