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

Don't miss out! 2025 Microsoft Fabric Community Conference, March 31 - April 2, Las Vegas, Nevada. Use code MSCUST for a $150 discount. Prices go up February 11th. Register now.

Reply
Syndicate_Admin
Administrator
Administrator

Ocultar eficazmente el subnivel en la matriz

¡Hola!

Actualmente estoy creando un estado de resultados y tengo algunos problemas de rendimiento con mi mesa central. Para dar un poco de contexto, tengo una tabla de hechos, que contiene todas las entradas, cada una vinculada a una cuenta específica, una tabla que contiene todos los nombres de los indicadores, con un identificador único, y una tabla que contiene todas las cuentas, cada una vinculada a un indicador específico.
Entrada:

Fecha CuentaNo Importe Tipo (ACT o BGT)

KPIDim:

IdentificaciónNombrePosición

AccountDim :

NoNombreKPIIs

Las relaciones son las siguientes:
KPIDim[Id] -> AccountDim[KPIId]
AccountDim[No] -> Entry[AccountNo]


Luego, creé una medida para cada indicador. Algunos de ellos utilizan directamente la columna KPIId de la tabla AccountDim, y otros, como el margen bruto, por ejemplo, simplemente agregan la medida de otros indicadores.
Ventas Reales = CALCULAR(SUMA(Entrada[Importe]), Entrada[Tipo]="ACT", KPIDim[Id]="ventas")
Costos Reales = CALCULAR(SUMA(Entrada[Cantidad]), Entrada[Tipo]="ACT", KPIDim[Id]="Costos")
Margen Real = [VentasReales] - [CostesReales]
Con una medida final que selecciona el indicador correcto, con un caso de interruptor:
SelectedIndicator = SWITCH(SELECTEDVALUE(KPIDim[Id],

"sales", ActualSales,

"costs", ActualCosts,

"margen", ActualMargin,
EN BLANCO())

La tabla que quiero crear usa el objeto visual Matrix de PowerBI y contiene:

Filas:

  1. Nombre del indicador (por ejemplo, ventas o margen bruto)
  2. Cuenta que contiene el indicador

Columnas:

  1. Mes

Valores:

  1. Importe real
  2. Importe presupuestado

La pregunta que me hago ahora es cómo hacer que la tabla muestre las cuentas (subnivel) bajo el indicador SOLO si las contiene directamente. Este sería el caso de las ventas y los costos, pero no del beneficio bruto. Así que necesitaríamos una tabla como esta (aquí solo se muestra el valor real):

Enero Febrero Marzo
Ventas101215

Cuenta A

677

Cuenta B

458

Costos

357

Cuenta C

134

Cuenta D

223

Margen bruto

77

8


Pero por ahora, el resultado es el siguiente:

Enero Febrero Marzo
Ventas101215

Cuenta A

677

Cuenta B

458

Costos

357

Cuenta C

134

Cuenta D

223

Margen bruto

77

8

Cuenta A

677

Cuenta B

458

Cuenta C

134

Cuenta D

223

He logrado lograr este resultado mediante el uso de un grupo de cálculo, que obliga a ocultar las cuentas para ciertos indicadores, pero la tabla tarda mucho en actualizarse cuando selecciono otro año. Los elementos del grupo de cálculo son los siguientes:

Ocultar =
SI(
HASONEVALUE(AccountDim[No]) &&
SELECTEDVALUE(KPIs[Ídem]) EN {"Ventas brutas", "netSales", "Carga de material", "Cambiode inventario", "merchandiseLoad", "margen", "margen2", "EBITDA", "EBIT", "Ingresos operativos", "NetIncomeAfterTax" (Ingresos netosdespués de impuestos), "Flujo de caja" },
ESPACIO EN BLANCO(),
SELECTEDMEASURE()
)

Así que he venido aquí para pedirte tu opinión sobre esta técnica, y si por supuesto tienes alguna sugerencia más limpia, mejor. Para dar una mejor idea, me gustaría hacer lo mismo que en este tutorial de YouTube: (64) La anatomía de una matriz de cuenta de resultados en Power BI - YouTube
¡Gracias de antemano por su ayuda 🙂
1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

Creo que el principal problema que explica por qué la actualización de mi matriz fue tan lenta, es que calculé medidas que estaban "imbricadas". He cambiado completamente la forma de mi modelo, de modo que las reglas para calcular mis indicadores se aplican en columnas de una tabla AccountDim. Luego, al establecer las relaciones correctas, la matriz es fácil de construir y las actuaciones son excelentes.

View solution in original post

3 REPLIES 3
Syndicate_Admin
Administrator
Administrator

Creo que el principal problema que explica por qué la actualización de mi matriz fue tan lenta, es que calculé medidas que estaban "imbricadas". He cambiado completamente la forma de mi modelo, de modo que las reglas para calcular mis indicadores se aplican en columnas de una tabla AccountDim. Luego, al establecer las relaciones correctas, la matriz es fácil de construir y las actuaciones son excelentes.

Syndicate_Admin
Administrator
Administrator

Hola @v-yangliu-msft,
Gracias por su respuesta.
En realidad, el modelo que creaste no se parece realmente a lo que di en mi mensaje, pero tengo la sensación de que la idea detrás de la solución que proporcionaste es la misma que la mía. Creo que me ceñiré al método que he encontrado, aunque no sea muy rápido... Realmente no encuentro ninguna otra solución aquí, desafortunadamente.

Syndicate_Admin
Administrator
Administrator

Hola @benjos23 ,

Puedes probar la siguiente medida:

Hide =
var _column=
{"grossSales", "netSales", "materialLoad", "inventoryChange", "merchandiseLoad", "margin", "margin2", "ebitda", "ebit", "operatingIncome", "netIncomeAfterTax", "cashflow" }
var _table=
SUMMARIZE(ALL('AccountDim'),[Name of indicator],[Account the indicator contains],[Id],[Month],"Value_True",SUMX(FILTER('AccountDim',NOT('AccountDim'[Id]) in _column),[Value])
)
return
IF(
    HASONEVALUE('AccountDim'[Account the indicator contains]) ,
  SUMX(
      FILTER(_table,[Name of indicator]=MAX([Name of indicator])&&[Account the indicator contains]=MAX([Account the indicator contains])&&[Month]=MAX([Month])),[Value_True])
    ,
IF(
    HASONEVALUE('AccountDim'[Name of indicator])&&NOT(HASONEVALUE('AccountDim'[Account the indicator contains])),SUM('AccountDim'[Value]),BLANK())  
)

vyangliumsft_0-1736925626118.png

Si el dax anterior no cumple con sus expectativas, ¿puede compartir datos de muestra y salida de muestra en formato de tabla? O un ejemplo de pbix después de eliminar datos confidenciales. Podemos entender mejor el problema y ayudarle.

Saludos

Liu Yang

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.

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!

Jan25PBI_Carousel

Power BI Monthly Update - January 2025

Check out the January 2025 Power BI update to learn about new features in Reporting, Modeling, and Data Connectivity.

Jan NL Carousel

Fabric Community Update - January 2025

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

Top Solution Authors