Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
3 years ago
Solved

Textsplit command in Power BI

Hi,

 

I have a list of adresses with the age of the habitants of each adres. I'm trying to create a measure in Power BI to show the average age of each adress. However, as seen below the age  is divided by a comma in a single cell. I don't want to split the cell into multiple rows or colums as some adresses consist of hundreds of habitants and i also have already 70K+ rows.

 

AgeAverage age
2929
22,22,2222
22,21,2121,33333333
22,2021
2828
00
00
32,31,24,2327,5
46,45,12,11,624

 

The formula i used in Excell is the following:

=AVERAGE(VALUE(TEXTSPLIT('Age',",")))

 

I would like to create a measure in Power BI similar to the formula in Excell, which has the output of Average age. What would be a similair formula to achieve the same result?

 

Cheers

  • Hi Anonymous 

    please try

    Average Age =
    VAR String = 'Table'[Age]
    VAR Items =
    SUBSTITUTE ( String, ",", "|" )
    VAR Length =
    COALESCE ( PATHLENGTH ( Items ), 1 )
    VAR T =
    GENERATESERIES ( 1, Length, 1 )
    RETURN
    AVERAGEX ( SELECTCOLUMNS ( T, "@Item", PATHITEM ( Items, [Value] ) ), [@Item] )

3 Replies

  • tamerj1's avatar
    tamerj1
    Community Champion

    Hi Anonymous 

    please try

    Average Age =
    VAR String = 'Table'[Age]
    VAR Items =
    SUBSTITUTE ( String, ",", "|" )
    VAR Length =
    COALESCE ( PATHLENGTH ( Items ), 1 )
    VAR T =
    GENERATESERIES ( 1, Length, 1 )
    RETURN
    AVERAGEX ( SELECTCOLUMNS ( T, "@Item", PATHITEM ( Items, [Value] ) ), [@Item] )

    • Anonymous's avatar
      Anonymous
      Not applicable

      Hello tamerj1,

       

      Thank you for your quick response, i occured one problem when putting in the formula. Which is that PowerBI does not recognize my 'Table'[Age] when i try to type it as VAR String =. Currently it is marked as text in PowerBI. What can i do to solve this.

      • tamerj1's avatar
        tamerj1
        Community Champion

        Anonymous 

        The code was intended for a calculated column. If you wish to create a measure you need to use aggregation function like MAX, MIN or SELECTEDVALUE