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

Matriz dinámica de pérdidas y ganancias en PBI con filas calculadas

Estoy tratando de crear una matriz dinámica de pérdidas y ganancias en Power BI que agregará una fila calculada para Ingresos operativos/(pérdidas) netos, que son Ingresos operativos - Gastos operativos. He creado medidas calculadas para los Ingresos Operativos, los Gastos Operativos, los Ingresos/(Pérdidas) Netos de Operación y las Ganancias/Pérdidas. Utilicé esta fórmula de cambio a continuación para crear mis valores de pérdidas y ganancias para incorporarlos a la matriz. No rellena los valores de mi fila calculada para el Ingreso operativo neto/(Pérdida). He intentado solucionar problemas con Chat GPT. Nada de lo sugerido solucionó el problema. En este punto, creé 2 tablas muy simples con datos de muestra solo para tratar de hacer que esto funcionara y eventualmente se aplicara a mi conjunto de datos real (que es mucho más complejo). Mi tabla de valores de pérdidas y ganancias (datos reales) está relacionada con mi tabla de pedidos de cuentas (estos son mis datos de plantilla para la configuración de pérdidas y ganancias) por categoría (ingresos, gastos, ganancias/pérdidas).

He intentado que la fórmula Switch calcule el ingreso operativo neto y también use un campo calculado separado. Ninguno de los dos funcionó. Espero que alguien pueda darme algunas ideas que Chat GPT no pudo encontrar.

También debo agregar que la línea "3 - Ingresos Operativos Netos Totales/(Pérdidas)" aparece en mi Matriz porque seleccioné "mostrar elementos sin datos" en el campo Orden de cuenta. Pude hacer que llenara un 0.00 en mi solución de problemas con chat gpt, pero esa no es la respuesta. Hay un verdadero valor en los Ingresos - Gastos. También revisé todos mis filtros, por lo que no excluye ningún dato.

Valores de P&L =
VAR Ingresos = COALESCE([Ingresos operativos], 0)
VAR Gastos = COALESCE([Utilidad operativa neta], 0)
VAR Ingresos netos = [Ingresos operativos] - [Gastos operativos]

DEVOLUCIÓN
INTERRUPTOR(
VERDADERO(),
SELECTEDVALUE('Tabla de pedidos de cuentas'[Orden de cuenta]) = "3 - Ingresos/(Pérdidas) Netos Totales de Explotación",
CALCULAR(Ingresos netos, TODOS SELECCIONADOS('Tabla de pedidos de cuentas')),
SELECTEDVALUE('Tabla de pedidos de cuentas'[Orden de cuenta]) = "1 - Ingresos",
Ingresos,
SELECTEDVALUE('Tabla de pedidos de cuentas'[Orden de cuenta]) = "2 - Gastos",
Gastos,
ESPACIO EN BLANCO()
)
Se trata de datos falsos muy simples con el fin de entender cómo hacer que esto funcione.
1 ACCEPTED SOLUTION

¡¡SÍ!! ¡Obtuve el resultado esperado! ¡¡¡Muchas gracias!!! -Kristi

View solution in original post

11 REPLIES 11
Syndicate_Admin
Administrator
Administrator

Hola, @kristibulliard

¿Puede proporcionar archivos de ejemplo y qué resultados espera? Esto te ayudará a resolver mejor el problema. Elimine cualquier dato confidencial con anticipación.

Cómo proporcionar datos de ejemplo en el foro de Power BI - Microsoft Fabric Community

Saludos

Equipo de apoyo a la comunidad _Charlotte

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.

Syndicate_Admin
Administrator
Administrator

Hola @kristibulliard

Puedo ver un problema con la línea con CALCULATE.

Está utilizando una variable (NetIncome) cuando se requiere una expresión. Dado que la variable se evalúa anteriormente y no se puede volver a calcular mediante CALCULATE, significa que los resultados serán incorrectos.

*podría* ser tan fácil como cambiar a

CALCULATE( [Ingresos operativos] - [Gastos operativos], ALLSELECTED('Tabla de pedidos de cuentas'))

Pero sería difícil saberlo sin datos de muestra.

Avísame si tienes alguna pregunta.

Actualicé mi fórmula a una que había usado anteriormente usando un ingreso operativo neto precalculado, pero aún no funciona. 😞 Gracias por revisar y responder. ¿Hay alguna forma de publicar los conjuntos de datos? Soy nuevo en este foro, mi primera pregunta la he hecho. Son solo datos inventados, por lo que no hay nada confidencial.
Valores de P&L =
VAR Ingresos = COALESCE([Ingresos operativos], 0)
VAR Gastos = COALESCE([Utilidad operativa neta], 0)
VAR Ingresos netos = COALESCE([Utilidad operativa neta], 0)

DEVOLUCIÓN
INTERRUPTOR(
VERDADERO(),
SELECTEDVALUE('Tabla de pedidos de cuentas'[Orden de cuenta]) = "3 - Ingresos/(Pérdidas) Netos Totales de Explotación",
Ingresos netos,
SELECTEDVALUE('Tabla de pedidos de cuentas'[Orden de cuenta]) = "1 - Ingresos",
Ingresos,
SELECTEDVALUE('Tabla de pedidos de cuentas'[Orden de cuenta]) = "2 - Gastos",
Gastos,
ESPACIO EN BLANCO()
)

@kristibulliard

Puede cargar xlsx o pbix en uno de OneDrive, Google Drive, DropBox, WeTransfer y publicar el enlace aquí. Es posible que tengas que cambiar los derechos de uso compartido en función de lo que elijas.

Se trata de datos falsos muy simples con el fin de entender cómo hacer que esto funcione.
¡Gracias!

Hola, @kristibulliard

No he podido abrir el enlace. ¿Podría seguir las indicaciones para archivos de ejemplo?

Cómo proporcionar datos de ejemplo en el foro de Power BI - Microsoft Fabric Community

Saludos

Equipo de apoyo a la comunidad _Charlotte

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.

Lo siento. Esta es la primera vez que publico aquí. Por favor, pruebe este enlace: https://www.dropbox.com/scl/fi/ekbu425iatvpcwrw0hd62/PowerBI_Dynamic-P-L-Test.pbix?rlkey=dx1snhkbod5...

Hola, @kristibulliard

Puede probar los siguientes métodos.

Operating Revenues = CALCULATE(SUM('P&L Values'[Value]), FILTER(ALL('P&L Values'),'P&L Values'[Account Order]="1 - Revenues"))
Operating Expenditures = CALCULATE(SUM('P&L Values'[Value]), FILTER(ALL('P&L Values'),'P&L Values'[Account Order]="2 - Expenditures"))
Gains/Losses = CALCULATE(SUM('P&L Values'[Value]),FILTER(ALL('P&L Values'), 'P&L Values'[Account Order]="4 - Gains/Losses"))
P&L Values = 
VAR Revenue = COALESCE([Operating Revenues], 0)
VAR Expenditures = COALESCE([Net Operating Income], 0)
VAR NetIncome = COALESCE([Net Operating Income], 0)
VAR GainsLosses = COALESCE([Gains/Losses], 0)
RETURN 
SWITCH(
    TRUE(),
    SELECTEDVALUE('Account Order Table'[Account Order]) = "3 - Total Net Operating Income/(Loss)", 
        NetIncome,  
    SELECTEDVALUE('Account Order Table'[Account Order]) = "1 - Revenues", 
        Revenue,
    SELECTEDVALUE('Account Order Table'[Account Order]) = "2 - Expenditures", 
        Expenditures,
    SELECTEDVALUE('Account Order Table'[Account Order]) = "4 - Gains/Losses", 
        GainsLosses,0
)

vzhangtinmsft_0-1739431423846.png

¿Es este el resultado que esperabas?

Saludos

Equipo de apoyo a la comunidad _Charlotte

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.

Agradezco la sugerencia. El resultado que espero es que "3 - Ingresos netos de explotación/(Pérdidas)" sea 3.000, no 0. Es una función de los Ingresos de Explotación menos los Gastos de Explotación (5.000 menos 2000). En mi conjunto de datos, los gastos se presentan como un número negativo, por lo que la verdadera fórmula aquí es Ingresos operativos + Gastos operativos.

Hola, @kristibulliard

Cambié el "3 - Ingreso Operativo Neto Total/(Pérdida)" en su fórmula original a "3 - Ingreso Operativo Neto/(Pérdida)".

P&L Values = 
VAR Revenue = COALESCE([Operating Revenues], 0)
VAR Expenditures = COALESCE([Net Operating Income], 0)
VAR NetIncome = COALESCE([Net Operating Income], 0)
VAR GainsLosses = COALESCE([Gains/Losses], 0)
RETURN 
SWITCH(
    TRUE(),
    SELECTEDVALUE('Account Order Table'[Account Order]) = "3 - Net Operating Income/(Loss)", 
        NetIncome,  
    SELECTEDVALUE('Account Order Table'[Account Order]) = "1 - Revenues", 
        Revenue,
    SELECTEDVALUE('Account Order Table'[Account Order]) = "2 - Expenditures", 
        Expenditures,
    SELECTEDVALUE('Account Order Table'[Account Order]) = "4 - Gains/Losses", 
        GainsLosses,0
)

vzhangtinmsft_0-1739497221044.png

¿Es este el resultado que esperabas?

Saludos

Equipo de apoyo a la comunidad _Charlotte

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.

¡¡SÍ!! ¡Obtuve el resultado esperado! ¡¡¡Muchas gracias!!! -Kristi

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 FABINSIDER for a $400 discount!

FebPBI_Carousel

Power BI Monthly Update - February 2025

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

March2025 Carousel

Fabric Community Update - March 2025

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

Top Solution Authors
Top Kudoed Authors