答案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 應該是第二個檔案中引用系統的位置。
和 A8,其中系統在第一個檔案的這一行中被引用。
而且...瞧...它有效...
如果你是新手,這相當複雜,所以請告訴我你是否能做到。
答案2
您可以使用Power Query
適用於 Excel 2010+
一旦開發了此查詢,您就可以在新增資料時輕鬆更新/刷新。
- 從 Excel:從表格/範圍取得資料(或 Excel 2010-2013 中的等效項)
- 在 PQ 編輯器中:選擇
Subsystem
列並Fill --> Down
- *這將填入第一列中的空白行
- 選擇第 2 列和第 3 列
- 合併列
" : "
作為分隔符
- 合併列
- 選擇第 1 列
- 透過...分組
- 新列名稱合併
- 手術: 所有行
- 透過...分組
- 新增列
- 公式:=Table.Column([分組],"合併")
選擇新“自訂”列頂部的雙向箭頭
- 提取值
- 使用特殊字元連接:#(如果) 這是換行符
關閉並加載
在 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"