我需要採取以下(CSV):重新組織數據的Excel
deviceId,ip,mac,serial,version,platform,vtpDomain,stack num, stack ports, stack model, stack version, stack image, stack MAC, stack Serial AA_MDF_2960X_2,10.10.10.10,abab.abab.abab, 123123123,15.0(2a)EX5,cisco WS-C2960X-48FPS-L,'AAHS',,,,,,,
,,,,,,,1,52,WS-C2960X-48FPD-L,15.0(2a)EX5,C2960X-UNIVERSALK9-M,abab.abab.abab, 123123123
,,,,,,,2,52,WS-C2960X-48FPS-L,15.0(2a)EX5,C2960X-UNIVERSALK9-M,abab.abab.abab, 123123123
,,,,,,,3,52,WS-C2960X-48FPS-L,15.0(2a)EX5,C2960X-UNIVERSALK9-M,abab.abab.abab, 123123123
,,,,,,,*4,52,WS-C2960X-48FPS-L,15.0(2a)EX5,C2960X-UNIVERSALK9-M,abab.abab.abab, 123123123
AA_MDF_2960X_2,10.10.10.10,abab.abab.abab, 123123123,15.0(2a)EX5,cisco WS-C2960X-48FPS-L,'AAES',,,,,,,
,,,,,,,1,52,WS-C2960X-48FPD-L,15.0(2a)EX5,C2960X-UNIVERSALK9-M,abab.abab.abab, 123123123
,,,,,,,2,52,WS-C2960X-48FPS-L,15.0(2a)EX5,C2960X-UNIVERSALK9-M,abab.abab.abab, 123123123
,,,,,,,3,52,WS-C2960X-48FPS-L,15.0(2a)EX5,C2960X-UNIVERSALK9-M,abab.abab.abab, 123123123
,,,,,,,*4,52,WS-C2960X-48FPS-L,15.0(2a)EX5,C2960X-UNIVERSALK9-M,abab.abab.abab, 123123123
的樣子:
列那種有反覆信息。在交換機堆棧中有每個主設備的名稱,IP,MAC,序列號,版本,型號,位置。在我的例子中顯示了兩個主人,每個人都有一個主人。針對堆疊中的每個交換機(包括主交換機)顯示相同的信息。此外,堆棧中還有表示位置的數字(加上顯示主機的'*'),交換機端口和堆棧映像。 以Name開頭的每一行都是交換機堆棧中的主節點。以空白開始的行是該堆棧中的交換機。我需要將堆棧中的交換機(包括主交換機)的信息放在與主服務器信息連續的列註釋中的單個單元中。 我可以創建一個Excel公式以填補缺失的項目,它看起來像:
(In R123)=if(A123="",R122,A123)
這很好,但還是給我留下了格式錯誤仍然刪除線和數據。這感覺就像是錯誤的路要走。另外,我正在尋找更自動的數據處理方式。 我希望能夠採取CSV,打開[東西],刷新,以圖片等格式導出新的CSV。 我可以使用power query,Excel或Power Pivot來關閉它。 使用Power Query,我可以添加索引列。然後我可以添加一個自定義列來檢查第一列是否爲空並返回結果。當列空白時,我不知道如何使Power Query引用「上面的單元格」。
即使提出如何將這個問題用詞組來獲得有用的Google搜索結果也是有幫助的。凌亂的數據,Power Query數據重新格式化等太模糊。
任何人都可以告訴我什麼條件使用時,指的是兩種類型的數據?我認爲後者可能是表格式的,絕對不是標準化的。
編輯:我在CSV示例中添加了標題。
我現在用在功率查詢以下:
let
Source = Csv.Document(File.Contents("C:\rawdata.csv"),[Delimiter=",", Columns=17, Encoding=1252, QuoteStyle=QuoteStyle.None]),
#"Promoted Headers" = Table.PromoteHeaders(Source),
#"Removed Columns" = Table.RemoveColumns(#"Promoted Headers",{"mac", "serial", "platform"}),
#"Added Custom" = Table.AddColumn(#"Removed Columns", "Notes_StepOne", each Text.Combine({[stack num],[#" stack model"],[#" stack version"],[#" stack image"],[#" stack MAC"],[#" stack Serial"] ,"#(000D)#(000A)"})),
#"Replaced Value" = Table.ReplaceValue(#"Added Custom","",null,Replacer.ReplaceValue,{"deviceId", "ip", "version", "vtpDomain"}),
#"Filled Down" = Table.FillDown(#"Replaced Value",{"deviceId", "ip", "version", "vtpDomain"}),
#"Group By" = Table.Group(#"Filled Down", {"deviceId", "ip", "version", "vtpDomain"}, {{"notes", each Text.Combine([Notes_StepOne]), type text}})
in
#"Group By"
編輯:圍繞替換括號引號「Notes_StepOne」 做得好亞歷!
您可以使用該解決方案找到[這裏](http://stackoverflow.com/questions/29440349/aggregate-collate-and-transpose-rows-into-列/ 29441346#29441346)並使用'Chr(10)'分隔* notes *列。 – Jeeped