Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
Syndicate_Admin
Administrator
Administrator

Divida la cadena separada por delimitadores en subcadenas y ejecute la lógica DAX en cada subcadena

(Si esto se elimina de nuevo, ¿alguien puede enviarme un mensaje por qué? ¿Enlaces externos? ¿Demasiadas ediciones?)
Tengo una columna de datos que contiene 2 decimales por valor:

SoftwareMajor.Minor.Build
Soft123.45.6780
Soft21.2.56441
Soft312.3.8210
Soft41.0.0000

Dado que hay 2 decimales por valor, no puedo ejecutar la lógica DAX en ellos como si fueran números (que están limitados a 1 decimal). Por lo tanto, tuve la idea de separar cada parte de los valores de 2 decimales en subcadenas.

Por ejemplo, 23.455.6780 se separaría en 3 subcadenas/variables:

Orig "23.455.6780"

Mayor "23"

Menor á "455"

Construir á "6780"

Entonces, me gustaría asegurarme de que cada uno de esos números sea lo suficientemente alto.

Código Psuedo de una nueva columna que devuelve "Good!" o "Bad" dependiendo de si el número de versión del software cumple:

SoftwareCompliance á 
    VAR Orig - SELECTEDVALUE('Paquetes de software'[Major.Minor.Build]) // Ex. "23.455.6780" <--La cantidad de números entre cada decimal puede cambiar
    VAR Major á "23" //I necesita extraer esto de 'O mediante programación
    VAR Minor á "455" //I necesita extraer esto de 'Orig' mediante programación
    VAR Build á "6780" //I necesita extraer esto de 'Orig' mediante programación
    RETURN SWITCH(
        TRUE(),
        VALUE(Major) > 23
            && VALOR (Menor) > 455
            && VALOR (Compilación) > 6750, "¡Bien!", // Si los números major, minor y build son lo suficientemente altos, la versión de software está en conformidad.
        " Bad" // De lo contrario, la versión de software está fuera de cumplimiento.
    )

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

Allí @wad11656

Descargue este archivo PBIX de ejemplo con el siguiente ejemplo

Esto es muy fácil de hacer en Power Query - eso es para lo que está construido para

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WCs5PKzFU0lEyMtYzMdUzM7cwUIrVgQgbAYUN9Yz0TM1MTAzhosYgUSM9Yz0LI0OEWhOwWgM9AyBQio0FAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Software = _t, Major.Minor.Build = _t]),
    #"Split Column by Delimiter" = Table.SplitColumn(Source, "Major.Minor.Build", Splitter.SplitTextByDelimiter(".", QuoteStyle.Csv), {"Major.Minor.Build.1", "Major.Minor.Build.2", "Major.Minor.Build.3"}),
    #"Renamed Columns" = Table.RenameColumns(#"Split Column by Delimiter",{{"Major.Minor.Build.1", "Major"}, {"Major.Minor.Build.2", "Minor"}, {"Major.Minor.Build.3", "Build"}}),
    #"Changed Type" = Table.TransformColumnTypes(#"Renamed Columns",{{"Major", Int64.Type}, {"Minor", Int64.Type}, {"Build", Int64.Type}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type", "Software Compliance", each if [Major] >= 23 and [Minor] >= 455 and [Build] >= 6750 then "Good" else "Bad")
in
    #"Added Custom"

scom.png

saludos

Phil

View solution in original post

1 REPLY 1
Syndicate_Admin
Administrator
Administrator

Allí @wad11656

Descargue este archivo PBIX de ejemplo con el siguiente ejemplo

Esto es muy fácil de hacer en Power Query - eso es para lo que está construido para

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WCs5PKzFU0lEyMtYzMdUzM7cwUIrVgQgbAYUN9Yz0TM1MTAzhosYgUSM9Yz0LI0OEWhOwWgM9AyBQio0FAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Software = _t, Major.Minor.Build = _t]),
    #"Split Column by Delimiter" = Table.SplitColumn(Source, "Major.Minor.Build", Splitter.SplitTextByDelimiter(".", QuoteStyle.Csv), {"Major.Minor.Build.1", "Major.Minor.Build.2", "Major.Minor.Build.3"}),
    #"Renamed Columns" = Table.RenameColumns(#"Split Column by Delimiter",{{"Major.Minor.Build.1", "Major"}, {"Major.Minor.Build.2", "Minor"}, {"Major.Minor.Build.3", "Build"}}),
    #"Changed Type" = Table.TransformColumnTypes(#"Renamed Columns",{{"Major", Int64.Type}, {"Minor", Int64.Type}, {"Build", Int64.Type}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type", "Software Compliance", each if [Major] >= 23 and [Minor] >= 455 and [Build] >= 6750 then "Good" else "Bad")
in
    #"Added Custom"

scom.png

saludos

Phil

Helpful resources

Announcements
LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.