Белешка
Ово је један од низа чланака који детаљно описују решења послана за изазов Подцаст 2316.
У свом оригиналном проблему обликовања података, врло рано сам наишао на проблем. Долазни подаци имали су много колона са насловом К1.
![](https://cdn.wiki-base.com/7921226/power_query_dealing_with_multiple_identical_headers_-_excel_tips_2.png.webp)
У свом решењу креирао сам именовани опсег „УглиДата“ и увезао га у Повер Куери. То је довело до несрећног резултата Повер Куери-а који је моје колоне преименовао у К1_1.
![](https://cdn.wiki-base.com/7921226/power_query_dealing_with_multiple_identical_headers_-_excel_tips_3.png.webp)
Касније, након опозива, морао сам из тих заглавља извући само лева два знака.
За овај проблем постојала су три одвојена решења:
- Вин Хопкинс и Демоте Хеадерс
- МФ Вонг и уклоните ознаку из Ми Табле Хас Хеадерс (такође предложио Петер Бартхоломев)
- Јасон М и једноставно избришите промовисана заглавља (такође су предложили Ондреј Малинскы и Екцел МВП Јохн МацДоугалл)
Прва иновација је Вин Хопкинс из компаније Аццесс Аналитиц. Уместо именованог опсега, Вин је податке претворио у табелу користећи Цтрл + Т. У овом тренутку је оштећена заглавља, пошто је Екцел претворио наслове у:
![](https://cdn.wiki-base.com/7921226/power_query_dealing_with_multiple_identical_headers_-_excel_tips_4.png.webp)
Једном када је Вин преузео податке у Повер Куери, отворио је падајући мени Користи први ред као заглавља и изабрао Користи заглавља као први ред. Никад нисам схватио да је ово тамо. Ствара корак под називом Табле.ДемотеХеадерс.
![](https://cdn.wiki-base.com/7921226/power_query_dealing_with_multiple_identical_headers_-_excel_tips_5.png.webp)
Али, чак и са Виновим побољшањем, ипак ће касније морати да извуче прва 2 знака из тих заглавља.
Друга иновација је техника МФ Вонга. Када је креирао табелу, одзначио је ставку Моја табела има заглавља!
![](https://cdn.wiki-base.com/7921226/power_query_dealing_with_multiple_identical_headers_-_excel_tips_6.png.webp)
Ово осигурава да Екцел вишеструка заглавља К1 остави на миру и да нема потребе за извлачењем додатног суфикса касније.
![](https://cdn.wiki-base.com/7921226/power_query_dealing_with_multiple_identical_headers_-_excel_tips_7.png.webp)
Разумем да има људи у кампу „Волим столове“. Видео МФ Вонга показао је како може да дода нове запосленике десно од података и табела се аутоматски проширује. Постоји много добрих разлога за употребу табела.
Али, зато што волим међузбир, прилагођене погледе и филтрирање по избору, обично не користим табеле. Дакле, ценим решење од Јасона М. Задржао је податке као именовани опсег УглиДата. Чим је увозио податке у Повер Куери, избрисао је ова два корака:
![](https://cdn.wiki-base.com/7921226/power_query_dealing_with_multiple_identical_headers_-_excel_tips_8.png.webp)
Сад, са подацима једноставно у 1. реду, нема гњаваже са много ступаца који се називају К1.
![](https://cdn.wiki-base.com/7921226/power_query_dealing_with_multiple_identical_headers_-_excel_tips_9.png.webp)
Ево шифре Вин Хопкин-а која приказује ДемотедХеадерс:
let Source = Excel.CurrentWorkbook()((Name="Table1"))(Content), #"Demoted Headers1" = Table.DemoteHeaders(Source), #"Transposed Table1" = Table.Transpose(#"Demoted Headers1"), #"Added Custom" = Table.AddColumn(#"Transposed Table1", "Custom", each if Text.Start((Column1),1) = "Q" then null else (Column1)), #"Filled Down" = Table.FillDown(#"Added Custom",("Custom")), #"Filtered Rows" = Table.SelectRows(#"Filled Down", each ((Custom) "Dept. Total")), #"Filtered Rows1" = Table.SelectRows(#"Filtered Rows", each not Text.StartsWith((Column1), "Employee")), #"Promoted Headers" = Table.PromoteHeaders(#"Filtered Rows1", (PromoteAllScalars=true)), #"Extracted First Characters" = Table.TransformColumns(#"Promoted Headers", (("Category Description", each Text.Start(_, 2), type text))), #"Reordered Columns" = Table.ReorderColumns(#"Extracted First Characters",("Category Description_1", "Category Description", "Administrative", "Holiday", "PTO/LOA/Jury Duty", "Project A", "Project B", "Project C")), #"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Reordered Columns", ("Category Description_1", "Category Description"), "Attribute", "Value"), #"Reordered Columns1" = Table.ReorderColumns(#"Unpivoted Other Columns",("Category Description_1", "Attribute", "Category Description", "Value")), #"Pivoted Column" = Table.Pivot(#"Reordered Columns1", List.Distinct(#"Reordered Columns1"(#"Category Description")), "Category Description", "Value", List.Sum), #"Reordered Columns2" = Table.ReorderColumns(#"Pivoted Column",("Attribute", "Category Description_1", "Q1", "Q2", "Q3", "Q4")), #"Renamed Columns" = Table.RenameColumns(#"Reordered Columns2",(("Attribute", "Cat Deasc"), ("Category Description_1", "Emp Name"))), #"Changed Type" = Table.TransformColumnTypes(#"Renamed Columns",(("Emp Name", type text), ("Q1", Int64.Type), ("Q2", Int64.Type), ("Q3", Int64.Type), ("Q4", Int64.Type))), #"Inserted Sum" = Table.AddColumn(#"Changed Type", "Total", each List.Sum(((Q1), (Q2), (Q3), (Q4))), Int64.Type) in #"Inserted Sum"
Вратите се на главну страницу за изазов Подцаст 2316.
Прочитајте следећи чланак из ове серије: Повер Куери: Избришите ово, избришите оне или ништа не избришите ?.