Forum Discussion

sethsanu's avatar
sethsanu
Frequent Visitor
9 years ago
Solved

Extract numbers from text

What's the most efficient way to extract numbers from a column that has a combination of both numbers and text? E.g.

 

1

1234

"hello World"

0

"arbitrary text"

should return

 

1

1234

null

0

null

 

Is there an M / PowerQuery formula for this scenario equaivalent to the t-sql "try_cast" or "try_convert"?

  • Anonymous's avatar
    Anonymous
    9 years ago

    In DAX you can use ISNUMBER.

    OK I should have tested that first. You were actually on the right track anyway. ISERROR(VALUE(TableName[ColumnName])) will return true if the value isn't a number, false if it is a number.

     

    In Power Query it's a two-step formula but you can nest them: Value.Is(Value.FromText([ColumnName]), Int64.Type) will return true if the row contains a number value, false if not.

4 Replies

  • Anonymous's avatar
    Anonymous
    Not applicable

    In DAX you can use ISNUMBER.

    OK I should have tested that first. You were actually on the right track anyway. ISERROR(VALUE(TableName[ColumnName])) will return true if the value isn't a number, false if it is a number.

     

    In Power Query it's a two-step formula but you can nest them: Value.Is(Value.FromText([ColumnName]), Int64.Type) will return true if the row contains a number value, false if not.

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi sethsanu,

    Adding to other’s post, to output the column to the your desired format, just create a new calculated column using this formula: Column 2 = IF(ISERROR(VALUE(Table1[Column1])),"null",Table1[Column1]), for more details, please check the following screenshot




    Thanks,
    Lydia Zhang

    • Anonymous's avatar
      Anonymous
      Not applicable

      Anonymous that would come out to be a text column wouldn't it? I think sethsanu meant he wanted a null result for text rows, rather than the actual text "null" but I could be mistaken.

      • sethsanu's avatar
        sethsanu
        Frequent Visitor

        Correct - I need to do the exclusion prior to importing at the M level. Thanks KHoreman - the M query test works fine! (marked as solution)