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

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
williamadams12
Resolver I
Resolver I

¿Función SWITCH o VAR para tipos de varios datos en una sola tabla para filas y columnas?

Hey there - Tengo una tabla de datos donde necesito consolidar varios tipos de datos, tanto números enteros en grandes cantidades en dólares y también porcentajes todos en la misma fila y / o columna. El tipo de datos se establece en decimal y estoy usando alguna lógica de modificador para cambiar el tipo de datos en función de la categoría de medida que creé. Por ejemplo, Ingresos , $, Margen , %, pero también necesito la medida Ingresos para cambiar al porcentaje si está asociado a una categoría específica... como se puede ver a continuación las dos categorías son 20205+7 frente a 20203+9 y 20205+7 frente a 2019A.

Por ejemplo, las categorías R, E y M son medidas en una función switch basadas en una tabla de datos que tiene encabezados de campo que se ven así:

región, subregión, categoría financiera, tipo financiero, escenario, importe

Por lo tanto, repartí los tipos financieros como columnas y luego creé una medida de conmutación basada en otras medidas creadas para los ingresos, ebitda y el margen, que casi funciona, excepto que todavía necesito lógica adicional en mi medida de ingresos para que sepa cambiar al porcentaje si un importe de ingresos está asociado con un tipo específico de categoría financiera por lo que se muestra como un porcentaje y no como un dólar en total como en la tabla siguiente.

williamadams12_0-1597177475295.png

Cualquier idea o orientación útil sería apreciado!

1 ACCEPTED SOLUTION

Hey gracias, en realidad lo descubrí por mi cuenta después de un poco de prueba y error.... Te explicaré @Icey . Su solución propuesta estaba cerca, pero esencialmente ya había hecho exactamente lo mismo antes de publicar, pero no tiene en cuenta diferentes formatos de datos para Ingresos o EBITDA por tipo financiero, es decir, $ y % en la misma fila, así como la misma columna.

Pero aquí está la solución:

Inicialmente, había creado medidas simples y calculadas para Ingresos, EBITDA y % Margen. Luego creé alias o medidas con formato de datos usando cada una de esas tres medidas originales para cada ID de orden de ordenación de tipo financiero que representaba todos los tipos financieros (15 en total): con formato de ingresos, formato EBITDA y formato de margen. Por lo tanto, básicamente, el alias cambiaría el formato de datos a % o $ de la medida original en función del IDENTIFICADOR de orden de clasificación del tipo financiero, es decir, 1 , $, 2 , %, 3 , $, etc..

E.g.

Ingresos con formato ?
SWITCH(VALUES('Financial Types'[Financial Types Sort Order])
,1, FORMAT([Revenue], "0.00%") -- el primer encabezado de columna es un porcentaje de ingresos, por lo que esto cambia el tipo de datos decimales a texto con %
,2, FORMAT([Ingresos], "0.00%")
,3, FORMAT([Revenue], "$0,0") -- el encabezado de la tercera columna es una cantidad de dolalr total, por lo que esto cambia el tipo de datos decimales a texto con $
,4, FORMAT([Ingresos], "$0,0")
,5, FORMAT([Ingresos], "$0,0")
,6, FORMAT([Ingresos], "0.00%")
,7, FORMAT([Ingresos], "0.00%")
,8, FORMAT([Ingresos], "$0,0")
,9, FORMAT([Ingresos], "$0,0")
,10, FORMAT([Ingresos], "0.00%")
,11, FORMAT([Ingresos], "0.00%")
,12, FORMAT([Ingresos], "$0,0")
,13, FORMAT([Ingresos], "0.00%")
,14, FORMAT([Ingresos], "$0,0")
,15, FORMAT([Ingresos], "$0,0")
)

Luego, utilicé otra función SWITCH(VALUES)/FORMAT para combinar/consolidar las tres Medidas Formateadas en una sola Medida que usé como el "Valor" en mi matriz de tabla, y funcionó perfectamente, pero estoy seguro de que hay una manera más limpia de lograr todo esto.

Hice lo siguiente:

Medida seleccionada: MAX('Categorías financieras'[Ordenar ID de pedido])

Medición del interruptor (Switch Measure)
SWITCH([Medida seleccionada],
1,FORMAT([Ingresos con formato], [Con formato de ingreso]),
2,FORMAT([EBITDA Formatted], [EBITDA Formatted]),
3,FORMAT([Margen con formato], [Margen con formato]) )

Dejé caer la 'Medida de cambio' en la tabla Valores de la tabla Matrix y el boom, funcionó perfectamente... aquí hay una captura de pantalla de lo que parece ahora:

multi-data table v2.PNG

Una vez más, para un panel de control estático y mensual con segmentaciones de datos aplicadas mínimas y sencillas, esto funciona, simplemente no sé qué tan sostenible es para un trabajo de desarrollo de BI más complejo o ambicioso.

Cualquier consejo o crítica sería apreciado!

View solution in original post

4 REPLIES 4
Icey
Community Support
Community Support

Hola @williamadams12 ,

Entiendo que desea mostrar un tipo de datos diferente en la misma columna. Si mi comprensión es correcta, por favor continúe mirando, si mi comprensión es incorrecta, por favor hágamelo saber y proporcione los datos de muestra relevantes, preferiblemente en forma de una captura de pantalla o gráfico.

1. Mis datos de muestra son los siguientes.

sample data.png

2. Puede escribir su medida así.

Revenue = 
SWITCH (
    MAX ( 'Table'[Financial categories] ),
    "Revenue", FORMAT ( MAX ( 'Table'[Values] ), "$00" ),
    "EBITDA", FORMAT ( MAX ( 'Table'[Values] ), "$00" ),
    "Margin", FORMAT ( MAX ( 'Table'[Values] ), "0.00%" )
)

3. Ponga la medida en matriz.

matrix visual.png

Puede consultar más detalles desde aquí.

Saludos

Icey

Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Hey gracias, en realidad lo descubrí por mi cuenta después de un poco de prueba y error.... Te explicaré @Icey . Su solución propuesta estaba cerca, pero esencialmente ya había hecho exactamente lo mismo antes de publicar, pero no tiene en cuenta diferentes formatos de datos para Ingresos o EBITDA por tipo financiero, es decir, $ y % en la misma fila, así como la misma columna.

Pero aquí está la solución:

Inicialmente, había creado medidas simples y calculadas para Ingresos, EBITDA y % Margen. Luego creé alias o medidas con formato de datos usando cada una de esas tres medidas originales para cada ID de orden de ordenación de tipo financiero que representaba todos los tipos financieros (15 en total): con formato de ingresos, formato EBITDA y formato de margen. Por lo tanto, básicamente, el alias cambiaría el formato de datos a % o $ de la medida original en función del IDENTIFICADOR de orden de clasificación del tipo financiero, es decir, 1 , $, 2 , %, 3 , $, etc..

E.g.

Ingresos con formato ?
SWITCH(VALUES('Financial Types'[Financial Types Sort Order])
,1, FORMAT([Revenue], "0.00%") -- el primer encabezado de columna es un porcentaje de ingresos, por lo que esto cambia el tipo de datos decimales a texto con %
,2, FORMAT([Ingresos], "0.00%")
,3, FORMAT([Revenue], "$0,0") -- el encabezado de la tercera columna es una cantidad de dolalr total, por lo que esto cambia el tipo de datos decimales a texto con $
,4, FORMAT([Ingresos], "$0,0")
,5, FORMAT([Ingresos], "$0,0")
,6, FORMAT([Ingresos], "0.00%")
,7, FORMAT([Ingresos], "0.00%")
,8, FORMAT([Ingresos], "$0,0")
,9, FORMAT([Ingresos], "$0,0")
,10, FORMAT([Ingresos], "0.00%")
,11, FORMAT([Ingresos], "0.00%")
,12, FORMAT([Ingresos], "$0,0")
,13, FORMAT([Ingresos], "0.00%")
,14, FORMAT([Ingresos], "$0,0")
,15, FORMAT([Ingresos], "$0,0")
)

Luego, utilicé otra función SWITCH(VALUES)/FORMAT para combinar/consolidar las tres Medidas Formateadas en una sola Medida que usé como el "Valor" en mi matriz de tabla, y funcionó perfectamente, pero estoy seguro de que hay una manera más limpia de lograr todo esto.

Hice lo siguiente:

Medida seleccionada: MAX('Categorías financieras'[Ordenar ID de pedido])

Medición del interruptor (Switch Measure)
SWITCH([Medida seleccionada],
1,FORMAT([Ingresos con formato], [Con formato de ingreso]),
2,FORMAT([EBITDA Formatted], [EBITDA Formatted]),
3,FORMAT([Margen con formato], [Margen con formato]) )

Dejé caer la 'Medida de cambio' en la tabla Valores de la tabla Matrix y el boom, funcionó perfectamente... aquí hay una captura de pantalla de lo que parece ahora:

multi-data table v2.PNG

Una vez más, para un panel de control estático y mensual con segmentaciones de datos aplicadas mínimas y sencillas, esto funciona, simplemente no sé qué tan sostenible es para un trabajo de desarrollo de BI más complejo o ambicioso.

Cualquier consejo o crítica sería apreciado!

amitchandak
Super User
Super User

@williamadams12, no muy claro para mí.

Uno es:- mostrar en la fila en Matriz -

https://www.burningsuit.co.uk/blog/2019/04/7-secrets-of-the-matrix-visual/

la segunda misma medida tiene un formato diferente

Este es para un propósito diferente, pero puede ayudar a

https://www.youtube.com/watch?v=vlnx7QUVYME

lbendlin
Super User
Super User

en el objeto visual de la matriz, coloque todas las medidas individuales en el receptor Valores y, a continuación, en la configuración visual, elija "Mostrar en filas".

Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

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

Top Solution Authors