Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
4 years ago
Solved

Use Column header in calculated column

Hi All, I need help with the below requirement : This is the sample file data I am currently working on. It contains the below columns having some blank values. I need an additional calculated colu...
  • lbendlin's avatar
    lbendlin
    4 years ago

    Thank you for the sample data.  Note that it has a lot of extra spaces so the following code may need some adjustments once you cleaned the data up.

     

     

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45W8k0sLkktUtJRMgRiR0cQwwDEVFCK1UGSNQJiJyewuI5ScKAPqqwxVMLQAKQuIL88tUjByROsJji/tCg5FShqAlcDUh0c7BmMKm8KxM7OUEVotpsBsYsLWLMJWLMjUHMsAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Filename = _t, #"   Col A" = _t, #"   Col B" = _t, #"   Col C" = _t, #"  Col D" = _t]),
        CN =Table.ColumnNames(Source),
        #"Added Custom" = Table.AddColumn(Source, "Output Col",
      (k)=> let l =
      List.Generate(()=>[x=1,y=""], 
          each [x] < List.Count(CN), 
          each [x=[x]+1, y=[y] & (if Record.Field(k,CN{[x]}) > " " then "" else ", " & CN{[x]})],
          each [y] & (if Record.Field(k,CN{[x]}) > " " then "" else ", " & CN{[x]})
      ),
      m = try Record.Field(k,CN{0}) & "/" & Text.Range(l{List.Count(CN)-2},2) otherwise null
      in m
    )
    in
        #"Added Custom"

     

    How to use this code: Create a new Blank Query. Click on "Advanced Editor". Replace the code in the window with the code provided here. Click "Done".