Повер Куери: Суочавање са више идентичних заглавља - Екцел савети

Преглед садржаја

Белешка

Ово је један од низа чланака који детаљно описују решења послана за изазов Подцаст 2316.

У свом оригиналном проблему обликовања података, врло рано сам наишао на проблем. Долазни подаци имали су много колона са насловом К1.

Много колона

У свом решењу креирао сам именовани опсег „УглиДата“ и увезао га у Повер Куери. То је довело до несрећног резултата Повер Куери-а који је моје колоне преименовао у К1_1.

Преименоване колоне

Касније, након опозива, морао сам из тих заглавља извући само лева два знака.

За овај проблем постојала су три одвојена решења:

  • Вин Хопкинс и Демоте Хеадерс
  • МФ Вонг и уклоните ознаку из Ми Табле Хас Хеадерс (такође предложио Петер Бартхоломев)
  • Јасон М и једноставно избришите промовисана заглавља (такође су предложили Ондреј Малинскы и Екцел МВП Јохн МацДоугалл)

Прва иновација је Вин Хопкинс из компаније Аццесс Аналитиц. Уместо именованог опсега, Вин је податке претворио у табелу користећи Цтрл + Т. У овом тренутку је оштећена заглавља, пошто је Екцел претворио наслове у:

Претворено у табелу: Цтрл + Т

Једном када је Вин преузео податке у Повер Куери, отворио је падајући мени Користи први ред као заглавља и изабрао Користи заглавља као први ред. Никад нисам схватио да је ово тамо. Ствара корак под називом Табле.ДемотеХеадерс.

Користите заглавља као први ред

Али, чак и са Виновим побољшањем, ипак ће касније морати да извуче прва 2 знака из тих заглавља.

Друга иновација је техника МФ Вонга. Када је креирао табелу, одзначио је ставку Моја табела има заглавља!

Мој сто има заглавља

Ово осигурава да Екцел вишеструка заглавља К1 остави на миру и да нема потребе за извлачењем додатног суфикса касније.

Више К1 заглавља

Разумем да има људи у кампу „Волим столове“. Видео МФ Вонга показао је како може да дода нове запосленике десно од података и табела се аутоматски проширује. Постоји много добрих разлога за употребу табела.

Али, зато што волим међузбир, прилагођене погледе и филтрирање по избору, обично не користим табеле. Дакле, ценим решење од Јасона М. Задржао је податке као именовани опсег УглиДата. Чим је увозио податке у Повер Куери, избрисао је ова два корака:

Избрисани кораци

Сад, са подацима једноставно у 1. реду, нема гњаваже са много ступаца који се називају К1.

Много К1 колона

Ево шифре Вин Хопкин-а која приказује ДемотедХеадерс:

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.

Прочитајте следећи чланак из ове серије: Повер Куери: Избришите ово, избришите оне или ништа не избришите ?.

Занимљиви Чланци...