Forum Discussion

ThomasSan's avatar
ThomasSan
Icon for Helper IV rankHelper IV
4 years ago
Solved

Replace text with content from other column

Hi everyone,

 

I am attempting to dynamically replace the headers of my table. My headers contain the string BLY, LY and CY which stand for "Before Last Year", "Last Year" and "Current Year", respectively. 

 

My steps so far were as follows:

- Managed to modify Excel data file so it contains the rows with the desired replacement values (i.e. 2019, 2020 and 2021)

- Transposed my table (before setting the first row as my column headers) so that I have all my column headers listed in one row (see screenshot)

- Using the "Replace Values" button, I have created the formula 

= Table.ReplaceValue(#"Transposed Table","BLY","2019",Replacer.ReplaceText,{"Column1"})

which successfully replaces all BLY to 2019

 

 

Now, as I would prefer to not change my hard coded replacement value each year when the corresponding years of BLY, LY and CY change, I would like to have my headers changed dynamically. I therefore attempted to modify the formula above with 

= Table.ReplaceValue(#"Transposed Table","BLY",{32}[Column2],Replacer.ReplaceText,{"Column1"})

However, my result was as follows:

 

It seems that this is not a viable option. Can someone please help me find the correct formula in order to produce the desired result?

  • What is the error message?

     

    If it's complaining that 2019 isn't text, then you can wrap #"Transposed Table"{30}[Column2] with Text.From.

4 Replies

  • The error is because it thinks you're trying to reference the Column2 field of the single element list { 32 }.

     

    I think this is what you intended:

    = Table.ReplaceValue(#"Transposed Table","BLY",#"Transposed Table"{30}[Column2],Replacer.ReplaceText,{"Column1"})
    • ThomasSan's avatar
      ThomasSan
      Icon for Helper IV rankHelper IV

      Hi AlexisOlson ,

       

      thank you for your reply. You are right, {32} was an error. Having applied your formula, however, I only get errors generated in column1.

      Do you have any idea where the problem lies?

       

      P.S.: = #"Transposed Table"{30}[Column2] is at least generating the right value (i.e. 2019)

       

      • AlexisOlson's avatar
        AlexisOlson
        Icon for Super User rankSuper User

        What is the error message?

         

        If it's complaining that 2019 isn't text, then you can wrap #"Transposed Table"{30}[Column2] with Text.From.