Forum Discussion

jaypatel's avatar
jaypatel
Helper III
5 years ago
Solved

Split Number,StartDate y EndDate from string

Hola a todos

Tengo una columna de cadena que es la concatenación de Number, StartDate y EndDate. Quiero extraer number, StartDate y EndDate de la cadena.
¿Alguien puede ayudarme con esto?

A continuación se muestra mi cadena:

Exmple: 1234 (01-03-2022 - 31-03-2022)

He extraído el número de la cadena. pero tienen algunas dificultades para extraer StartDate y EndDate de la cadena. He utilizado debajo de DAX para extraer el número. Sigo este enlace.

ExtString - LEFT(SUBSTITUTE(Table[Name]," ","-"),SEARCH("-",SUBSTITUTE(Table[Name]," ","-"))-1)

saludos

Jay

  • Hola @jaypatel ,

    Cree 3 columnas calculadas como se indica a continuación:

    First Value1 = 
    var _search1=SEARCH("(",'Table'[Text],1,0)
    Return
    LEFT('Table'[Text],_search1-1)
    Start date = 
    var _search1=SEARCH("(",'Table'[Text],1,0)
    Return
    MID('Table'[Text],_search1+1,10)
    End date = 
    LEFT(RIGHT('Table'[Text],11),10)

    Y verás:

    Annotation 2020-09-10 161254.png

    Para el archivo .pbix relacionado, pls ver adjunto.

    Saludos
    Kelly
    ¿He respondido a tu pregunta? ¡Marca mi puesto como una solución!

10 Replies

  • @jaypatel , Probar como

    número izquierda([columna],4)

    Fecha de inicio: mid([column],7,10)

    Fecha de finalización: mid([column],20,10)

    • jaypatel's avatar
      jaypatel
      Helper III

      @amitchandak Gracias por la respuesta rápida. Pero mis primeros números no tienen la misma longitud. Puede variar como 1,12,123,1234... etc.

      • amitchandak's avatar
        amitchandak
        Super User

        @jaypatel, intenta como

        left(Table[Col], SEARCH(",Table[Col],1,0) -2)

        Fecha de inicio: mid([column],SEARCH(",Table[Col],1,0)+1,10)

        Fecha de finalización: mid([column],SEARCH(",Table[Col],1,0)+14,10)

        Necesidad de ajuste menor en el número que agregué

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hola @jaypatel ,

    Debe intentar hacer esto en Power Query

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjQyNlHQMDDUNTDWNTIwMlLQVTCGczSVYnXASgipoMyEWAA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Text = _t]),
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"Text", type text}}),
        #"Inserted Text Before Delimiter" = Table.AddColumn(#"Changed Type", "Text Before Delimiter", each Text.BeforeDelimiter([Text], "("), type text),
        #"Inserted Text Between Delimiters" = Table.AddColumn(#"Inserted Text Before Delimiter", "Text Between Delimiters", each Text.BetweenDelimiters([Text], "(", "-", 0, 2), type text),
        #"Inserted Text Between Delimiters1" = Table.AddColumn(#"Inserted Text Between Delimiters", "Text Between Delimiters.1", each Text.BetweenDelimiters([Text], "-", ")", 2, 0), type text),
        #"Renamed Columns" = Table.RenameColumns(#"Inserted Text Between Delimiters1",{{"Text Before Delimiter", "First Value"}, {"Text Between Delimiters", "Start Date"}, {"Text Between Delimiters.1", "End Date"}})
    in
        #"Renamed Columns"

    1.jpg

    saludos
    Harsh Nathani
    ¿He respondido a tu pregunta? ¡Marca mi puesto como una solución! Apreciar con un Kudos!! (Haga clic en el botón Pulgares arriba)

    • Anonymous's avatar
      Anonymous
      Not applicable

      Hola @jaypatel ,

      En PQ siga estos pasos.

      1.jpg2.JPG3.JPG

      saludos
      Harsh Nathani
      ¿He respondido a tu pregunta? ¡Marca mi puesto como una solución! Apreciar con un Kudos!! (Haga clic en el botón Pulgares arriba)

    • jaypatel's avatar
      jaypatel
      Helper III

      @harshnathani Había dado una toma en Power Query usando una función de texto. Pero, ¿es posible crear una medida para lograr el mismo resultado?

      • Anonymous's avatar
        Anonymous
        Not applicable

        Hola @jaypatel ,

        No te sugiero que hagas esto en DAX.

        Sin embargo, estas son las fórmulas que puede probar

        First Value1 = 
        
        var _a = SUBSTITUTE('Table'[Text], "-","|",3)
        var _b = SUBSTITUTE(_a,"(","|")
        var _c = SUBSTITUTE(_b,")","")
        RETURN
        TRIM(PATHITEM(_c,1))

        StDate = 
        
        var _a = SUBSTITUTE('Table'[Text], "-","|",3)
        var _b = SUBSTITUTE(_a,"(","|")
        var _c = SUBSTITUTE(_b,")","")
        RETURN
        TRIM(PATHITEM(_c,2))

        StDate = 
        
        var _a = SUBSTITUTE('Table'[Text], "-","|",3)
        var _b = SUBSTITUTE(_a,"(","|")
        var _c = SUBSTITUTE(_b,")","")
        RETURN
        TRIM(PATHITEM(_c,3))

        saludos
        Harsh Nathani
        ¿He respondido a tu pregunta? ¡Marca mi puesto como una solución! Apreciar con un Kudos!! (Haga clic en el botón Pulgares arriba)

  • v-kelly-msft's avatar
    v-kelly-msft
    Community Support

    Hola @jaypatel ,

    Cree 3 columnas calculadas como se indica a continuación:

    First Value1 = 
    var _search1=SEARCH("(",'Table'[Text],1,0)
    Return
    LEFT('Table'[Text],_search1-1)
    Start date = 
    var _search1=SEARCH("(",'Table'[Text],1,0)
    Return
    MID('Table'[Text],_search1+1,10)
    End date = 
    LEFT(RIGHT('Table'[Text],11),10)

    Y verás:

    Annotation 2020-09-10 161254.png

    Para el archivo .pbix relacionado, pls ver adjunto.

    Saludos
    Kelly
    ¿He respondido a tu pregunta? ¡Marca mi puesto como una solución!