Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Icon for Administrator rankAdministrator
2 years ago

Formato MATRIX con tipos de datos mixtos

Para facilitar la explicación, esta es una simplificación del problema que estoy tratando de resolver, así que espero que la solución se amplíe para satisfacer las necesidades finales.

Los datos que estoy extrayendo en PowerBI desde Excel se ven así y así es como me gustaría que se vieran en una matriz de PowerBI.

En ese intento, creé una medida con el siguiente código:

zzMarked_LRF_Text = 

FORMAT(
IF(
    ISFILTERED ( 'Fund I Investment Schedule'[Project] ) ,
        VALUES ( 'Fund I Investment Schedule'[Marked LRF] ),
    BLANK ()
),"0.00%")

Pero la salida en la matriz BI es la siguiente:

Los datos de PowerQuery extraen los datos de Excel como texto (lo que probablemente sea necesario).

¿Cómo puedo formatear la Matrix para mostrar los datos en formato 0.00%?

¡Gracias!

3 Replies

  • Hola, @mrothschild

    Estoy encantado de ayudarte.

    De acuerdo con su descripción, ¿desea saber cómo puede formatear la matriz para mostrar los datos en formato 0.00%?

    Si te he entendido correctamente, entonces puedes consultar mi solución.

    En su medida, podría considerar agregar un juicio para convertir los datos que se pueden convertir en un porcentaje en un porcentaje.

    Puedes consultar mi fórmula de Medida, espero que te ayude:

    zzMarked_LRF_Text1 = 
    IF (
        ISFILTERED ( 'Fund I Investment Schedule'[Project] ),
        VAR value_ =
            VALUES ( 'Fund I Investment Schedule'[Marked LRF] )
        RETURN
            IF (
                ISERROR ( VALUE ( value_ ) ),
                value_,
                FORMAT ( VALUE ( value_ ), "0.00%" )
            ),
        BLANK ()
    )
    

    Aquí está el resultado de mi prueba:

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


    Saludos
    Fen Ling,


    Si esta publicación ayuda, considere Acéptalo como la solución para ayudar a los demás miembros a encontrarlo más rápidamente.

  • @v-fenling-msft

    Una pregunta de seguimiento, si no te importa. En la captura de pantalla a continuación, el número del 1,18% en azul oscuro en la parte inferior se calcula en Excel como SUMPRODUCT([Marcado LRF],[Cantidad])/SUM([Cantidad]

    Puedo realizar una función similar para columnas de solo números en PowerBI con el siguiente código (para una columna diferente)

    _DPI - Measure = 
    
    VAR _desiredrows =
        FILTER (
            'Fund I Investment Schedule',
            'Fund I Investment Schedule'[Order] < 9999
        )
    
    VAR _output = 
        SUMX(
            GROUPBY('Fund I Investment Schedule','Fund I Investment Schedule'[Fund Capital],'Fund I Investment Schedule'[Distributions to Paid-In]),
            'Fund I Investment Schedule'[Distributions to Paid-In]
        )
            
    
    VAR _output_wavg = 
        DIVIDE (
            SUMX (
                _desiredrows,
                'Fund I Investment Schedule'[Fund Capital] * 'Fund I Investment Schedule'[Distributions to Paid-In]  
            ),
            SUMX (
                _desiredrows,
                'Fund I Investment Schedule'[Fund Capital]
            )
        )
    
    RETURN 
        IF(
            HASONEVALUE('Fund I Investment Schedule'[Order]),
            _output,
            _output_wavg
        )

    Intenté combinar su solución con el código SUMPRODUCT anterior, pero no funciona. ¿Hay alguna manera de generar la cifra del 1,18% como un subtotal en una matriz de PowerBI?

    ____Marked LRF - Measure - new attempt = 
    
    VAR _desiredrows =
        FILTER (
            'Fund I Investment Schedule',
            SUMX(GROUPBY('Fund I Investment Schedule','Fund I Investment Schedule'[Project],'Fund I Investment Schedule'[Marked LRF]),
                'Fund I Investment Schedule'[Marked LRF]) > 0
        )
    
    VAR _output_single_row = 
        IF(
            HASONEVALUE( 'Fund I Investment Schedule'[Order] ) ,
    
            VAR _value =
                VALUES ( 'Fund I Investment Schedule'[Marked LRF] )
            RETURN
                IF(
                    ISERROR( VALUE( _value) ),
                    _value,
                    FORMAT( VALUE( _value ) , "0.00%" )
                ),
            BLANK ()
        )
    
    VAR _output_wavg = 
        DIVIDE (
            SUMX (
                _desiredrows,
                'Fund I Investment Schedule'[Fund Capital] * 'Fund I Investment Schedule'[Marked LRF]   
            ),
            SUMX (
                _desiredrows,
                'Fund I Investment Schedule'[Fund Capital]
            )
        )
    
    RETURN 
        IF(
            HASONEVALUE('Fund I Investment Schedule'[Order]),
            _output_single_row,
            _output_wavg
        )