Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
6 years ago
Solved

Return Non-Blank Values From Multiple Columns With Delimiters

I have the following table:

 

ID

DogCatPigHorseCowSheep

1

Dog     
2 Cat   Sheep
3      
4  PigHorseCow 

 

I'm trying to create a calculated column that would populate a string based on the non-blank values of EACH of the six columns with a ", " delimiter. The results from above would be:

 

IDAnimals
1Dog
2Cat, Sheep
3None
4Pig, Horse, Cow

 

I've tried doing nested CONCATENATE and IF statements, but the string separation is the most difficult part. Essentially, I'm looking for something akin to TEXTJOIN from Excel. Anyone point me in the right direction?

 

This is a created table within my model, so I unfortuantely can't use any of the M table.join functions to help.

  • So like this?

     

    TextJoin = 
      VAR __Table = { [Dog], [Cat], [Pig], [Horse], [Cow], [Sheep] }
    RETURN
      CONCATENATEX(
          FILTER(__Table,[Value]<>""),
          [Value],
          ","
      )

     

    PBIX attached.

4 Replies

  • Greg_Deckler's avatar
    Greg_Deckler
    Icon for Community Champion rankCommunity Champion

    So like this?

     

    TextJoin = 
      VAR __Table = { [Dog], [Cat], [Pig], [Horse], [Cow], [Sheep] }
    RETURN
      CONCATENATEX(
          FILTER(__Table,[Value]<>""),
          [Value],
          ","
      )

     

    PBIX attached.

    • Anonymous's avatar
      Anonymous
      Not applicable

      Thanks Greg! Worked like a charm.

    • TaufikMaggangka's avatar
      TaufikMaggangka
      Icon for Helper II rankHelper II

      Hi Greg_Deckler ,

      I have similiar issues here, the different is I am using direct query mode and "concanatex" is not support direct query.
      it is possible to it in "Measure" ? your support will be really appreciated.

      Tahnk you.

    • roger_rdf's avatar
      roger_rdf
      Regular Visitor

      Hi Greg_Deckler great solution, 

      just a question, is possible count the words in this column?
      For exemple:
      TextJoin            Count

      Dog1
      Cat,Sheep2
       0
       0
      Pig,Horse,Cow3

       

      Thank you so much.