Quantcast
Channel: Active questions tagged header - Stack Overflow
Viewing all articles
Browse latest Browse all 699

How to properly clean column header in Power Query and capitalize first letter only without changing other letter?

$
0
0

I would like to clean a column Header of the table so that my column header that has a name like below:

  • [Space][Space][Space]First Name[Space][Space]
  • [Space]MaintActType[Space]
  • TECO date[Space]
  • FIN Date
  • ABC indicator
  • COGS
  • Created On

And my desired Column Header Name to be like below:

  • First Name
  • Main Act Type
  • TECO Date
  • FIN Date
  • ABC Indicator
  • COGS
  • Created On

my code is as below:

let    Source = Excel.Workbook(File.Contents("C:\RawData\sample.xlsx"), null, true),    #"sample_Sheet" = Source{[Item="sample",Kind="Sheet"]}[Data],    #"Promoted Headers" = Table.PromoteHeaders(#"sample_Sheet", [PromoteAllScalars=true]),    #"Trim ColumnSpace" = Table.TransformColumnNames(#"Promoted Headers", Text.Trim),    #"Split CapitalLetter" = Table.TransformColumnNames(#"Trim ColumnSpace", each Text.Combine(Splitter.SplitTextByPositions(Text.PositionOfAny(_, {"A".."Z"},2)) (_), " ")),    #"Remove DoubleSpace" = Table.TransformColumnNames(#"Split CapitalLetter", each Replacer.ReplaceText(_, "  ", " ")),    #"Capitalise FirstLetter" = Table.TransformColumnNames(#"Remove DoubleSpace", Text.Proper),    #"Remove Space" = Table.TransformColumnNames(#"Capitalise FirstLetter", each Text.Remove(_, {" "})),    #"Separate ColumnName" = Table.TransformColumnNames(#"Remove Space", each Text.Combine(Splitter.SplitTextByCharacterTransition({"a".."z"}, {"A".."Z"}) (_), " "))in    #"Separate ColumnName"

However, i get the result as below. Which is not what i wanted as all the capital letter we combined together. How do i change the code so that i get the result as wanted? I would really appreciate your help, please.

  • First Name
  • Main Act Type
  • TECODate
  • FINDate
  • ABCIndicator
  • COGS
  • Created On

Alternatively, i changed the code to:

let   Source = Excel.Workbook(File.Contents("C:\RawData\sample.xlsx"), null, true),   #"sample_Sheet" = Source{[Item="sample",Kind="Sheet"]}[Data],   #"Promoted Headers" = Table.PromoteHeaders(#"sample_Sheet", [PromoteAllScalars=true]),   #"Trim ColumnSpace" = Table.TransformColumnNames(Input, Text.Trim),   #"Separate ColumnName" = Table.TransformColumnNames(#"Trim ColumnSpace", each Text.Combine(Splitter.SplitTextByCharacterTransition({"a".."z"}, {"A".."Z"}) (_), " ")),   #"Capitalise FirstLetter" = Table.TransformColumnNames(#"Separate ColumnName", Text.Proper)    in   #"Capitalise FirstLetter"

Unfortunately it return the result like so:

  • First Name
  • Main Act Type
  • Teco Date
  • Fin Date
  • Abc Indicator
  • COGS
  • Created On

I have no idea how to play around the code anymore.


Viewing all articles
Browse latest Browse all 699

Trending Articles