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

Get inspired! Check out the entries from the Power BI DataViz World Championships preliminary rounds and give kudos to your favorites. View the vizzies.

Reply
Syndicate_Admin
Administrator
Administrator

Medida de Dax necesaria

¡Hola! Necesito ayuda para dar formato a una columna de texto. Parece tan fácil hacerlo en SQL usando funciones de cadena, pero necesito ayuda para hacerlo usando DAX:


Tengo una columna que tiene dos problemas: cada valor es una lista de nombres, pero se ven mal porque no hay espacio después de cada coma, y los nombres no siempre están en mayúsculas.

Ejemplo de mi columna con valores que no se ve ordenada y necesita ser corregida:

"Mi columna"
asmith,jnorth,wjones
aLee,mjonson,rwillis,KBronson
Jjones,frowen

Necesito que los valores se vean así (un solo espacio después de cada coma y las dos primeras letras de cada nombre en mayúsculas mientras que las otras letras están en minúsculas):

"Mi columna"
ASmith, JNorth, WJones
ALee, MJonson, RWillis, KBronson
JJones, FRowen

¡Gracias! Tiene que ser un ajuste que necesito colocar en un campo "Recurso" de un diagrama de Gantt en un proyecto de Power BI.

4 REPLIES 4
Syndicate_Admin
Administrator
Administrator

Hola @E12345

Agregue esta columna personalizada en el editor de consultas:

let
    // Split the text in MyColumn using commas as the delimiter
    SplitText = Text.Split([MyColumn], ","),

    // Transform each part by uppercasing the first two characters and lowercasing the rest
    UppercasedFirstTwoChars = 
    List.Transform(SplitText, each Text.Upper(Text.Start(_,2)) & Text.Lower(Text.End(_, Text.Length(_)-2))),

    // Recombine the transformed parts into a single text, joined by commas
    Recombined = Text.Combine(UppercasedFirstTwoChars, ", ")
in 
    // Output the recombined text
    Recombined

danextian_0-1738977843876.png

Muchas gracias, pero está usando el lenguaje M y necesito una medida DAX para ponerla en Power BI Desktop. Usamos conexión en vivo, por lo que no tengo acceso al lenguaje Power Query/M.

Hola, danextian, gracias por tu preocupación sobre este tema.

¡Tu respuesta es excelente!
Y me gustaría compartir algunas soluciones adicionales a continuación.


Hola, @E12345 . Estaré encantado de ayudarte.
Observo que danextian ya ha proporcionado un caso de solución para el código dax.
Sin embargo, dado que está utilizando conexiones en vivo como modo de conexión de datos. Hay algunas funciones y capacidades de DAX que pueden estar limitadas. El modo Conexiones dinámicas se usa principalmente para conectarse a conjuntos de datos de Power BI o modelos de Analysis Services existentes, en lugar de importar datos directamente. Como resultado, es posible que algunas manipulaciones y cálculos de datos no sean tan flexibles como en el modo de importación.
Esto está relacionado con la versión de su modelo.
Puede intentar probar esta medida en Power BI Desktop mediante el modo Conexiones en vivo para ver si funciona correctamente.
Como ha mencionado, en el modo Live Connections, los usuarios normalmente no tienen acceso para modificar el modelo de datos. Por lo tanto, mover algunos de los cálculos a la fuente de datos para el preprocesamiento también es una mejor solución. Esto garantiza que, al usar Live Connections en Power BI, los datos se hayan procesado de la manera necesaria.
Siempre que tenga la autoridad para modificar ese modelo de AS.
Se trata de una limitación del modelo de conexión de conexiones en directo.
Resuelto: Re: Limitaciones de conexión en tiempo real - Comunidad de Microsoft Fabric

Espero que mis sugerencias le den buenas ideas, si tiene más preguntas, aclare en una respuesta de seguimiento.
Saludos
Carson Jian

Me di cuenta de que querías DAX, así que aquí están

CapitalizedFirstTwoCharacters CalcColumn = 
VAR CountOfComma =
    LEN ( 'Table'[MyColumn] ) - LEN ( SUBSTITUTE ( 'Table'[MyColumn], ",", "" ) )
VAR Numbers =
    GENERATESERIES ( 1, 2, 1 )
VAR Substituted =
    SUBSTITUTE ( 'Table'[MyColumn], ",", "|" )
VAR _Names =
    ADDCOLUMNS (
        Numbers,
        "@name",
            VAR _item =
                PATHITEM ( Substituted, [Value] )
            VAR _itemLength =
                LEN ( _item )
            RETURN
                UPPER ( LEFT ( _item, 2 ) )
                    & LOWER ( RIGHT ( _item, _itemLength - 2 ) )
    )
RETURN
    CONCATENATEX ( _Names, [@name], ", " )

danextian_0-1738979838417.png

CapitalizedFirstTwoCharacters Measure = 
VAR _Value = MAX ( 'Table'[MyColumn] )
VAR CountOfComma =
    LEN ( _Value ) - LEN ( SUBSTITUTE (_Value, ",", "" ) )
VAR Numbers =
    GENERATESERIES ( 1, CountOfComma, 1 )
VAR Substituted =
    SUBSTITUTE (_Value, ",", "|" )
VAR _Names =
    ADDCOLUMNS (
        Numbers,
        "@name",
            VAR _item =
                PATHITEM ( Substituted, [Value] )
            VAR _itemLength =
                LEN ( _item )
            RETURN
                UPPER ( LEFT ( _item, 2 ) )
                    & LOWER ( RIGHT ( _item, _itemLength - 2 ) )
    )
RETURN
    CONCATENATEX ( _Names, [@name], ", " )

danextian_1-1738979881332.png

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

FebPBI_Carousel

Power BI Monthly Update - February 2025

Check out the February 2025 Power BI update to learn about new features.

Feb2025 NL Carousel

Fabric Community Update - February 2025

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

Top Solution Authors
Top Kudoed Authors