teletubbi
Hola,
Tengo una tabla con un esquema de cuentas como un estado de resultados (ver la tabla de la izquierda en la imagen). Puedo crear los valores para cada cuenta para cada mes pero no para la suma de esas cuentas en la misma categoría. Además, no puedo implementar medidas calculadas en la tabla de la izquierda (como Total 1+ Total 2 + Total 3 = Total 4). En la imagen de la derecha, calculé los totales que quiero implementar en la tabla de la izquierda. ¿Tienes alguna idea?
enlace a la imagen:
Para los valores de cada cuenta que utilicé: Balance = sumx(Testdaten;Testdaten[Summe])
Para la suma por categoría (cuenta) usé: SumbyCategory = CALCULATE(SUM(Testdaten[Summe]);ALLEXCEPT(Esquema de prueba;Esquema de prueba[Category]))
También traté de usar el interruptor… pero eso no muestra ningún dato en los totales. Tal vez hice algo mal allí:
Cambiar =
SI (
CUENTAS ( VALORES ( Esquema de prueba[Level]) ) = 1;
CAMBIAR (
VALORES (‘Esquema de prueba'[Account] );
«Ingreso 1»; [Balance];
«Ingreso 2»; [Balance];
«Ingreso 3»; [Balance];
«Ingreso 4»; [Balance];
«Total T+T2+T3»; [Total4];
BLANCO ()
);
100
)
Uso una tabla de fechas, una tabla de datos y una tabla para el esquema de cuentas. Los datos se ven así:
Enlace a la imagen: https://ibb.co/3SK1Bnq
AntonioTilley
Hice esto usando una tabla de agrupación junto con una declaración de caso para cambiar entre los tipos de cálculo
-Nombre de tabla = Grupos
PEDIDO
Encabezamiento
CalcType
Grupo
Mostrar detalles
1
T1
1
1
1
2
Total T1
2
1
0
3
T2
1
2
1
4
Total T2
2
2
0
5
T3
1
3
1
6
Total T3
2
3
0
7
T4 total
3
4
0
Luego uno esto a mis cantidades de ingresos agregando una columna de grupo (T1, T2, T3)
Nombre de la tabla = conjunto de datos
cuenta
Encabezamiento
INGRESO 1
T1
INGRESOS 2
T1
INGRESOS 3
T1
INGRESOS 4
T1
INGRESOS 5
T1
INGRESOS 6
T1
INGRESOS 7
T2
INGRESOS 8
T2
INGRESOS 9
T3
INGRESOS 10
T3
Luego creo un conjunto de medidas de cálculo para mantener diferentes valores
–esto obtendrá el tipo de cálculo mínimo para cada encabezado que se usará más tarde para cambiar según el tipo de cálculo y los detalles del encabezado
HeaderCalcType = min(Grupos[CalcType])
Detalle del encabezado = max(Grupos[details])
Está filtrado el subencabezado = ESTÁ FILTRADO(‘conjunto de datos'[Acct])
— obtenga la suma de sus valores
Fact_AMT = SUMA (conjunto de datos[AMT])
-el total acumulado obtendrá el total de todos los valores donde el pedido es menor que el propio pero donde el tipo de encabezado es el mismo
Ejecutando AMT = Si (
HASONEFILTER(Grupos[Header])
,
CALCULAR(
[fact_AMT]
,
Todos los grupos)
,
Grupos[ORDER] < VALORES(Grupos[ORDER])
,
Grupos[Group] >= VALORES(Grupos[Group])
)
,
blanco()
)
–total AMT obtiene el total de todos los valores
Total_AMT =
Si(
HASONEFILTER(Grupos[Header])
,
CALCULAR(
[fact_AMT]
,
Todos los grupos)
,
Grupos[ORDER] < VALORES(Grupos[ORDER])
)
,
blanco()
)
luego creo una declaración Switch para cambiar entre los diferentes tipos de cálculo
Informe combinado AMT = SWITCH(
[HeaderCalcType]
,
EN BLANCO(), EN BLANCO()
,
1, [fact_AMT]
,
2, [Running AMT]
,
3,[Total_AMT]
,BLANCO()
)
Y finalmente, creo el monto del estado de resultados que significará que los encabezados totales del grupo no se expanden
Estado de resultados AMT = (Si (
O(
Y([Header Detail]=0, [Is Subheader Filtered]),
Y([Header Detail]=1, [Is Subheader Filtered] = FALSO())
)
,
BLANCO()
,
[Combined Report AMT]
))
Resultado final Crear una tabla con el siguiente diseño
Filas
Grupos[header]
conjunto de datos[Acct]
columnas
conjunto de datos[date]
Valores
Cuenta de resultados AMT
ENCABEZAMIENTO
ENE
FEB
TOTAL
T1
INGRESO 1
200
300
500
INGRESOS 2
200
300
500
INGRESOS 3
200
300
500
INGRESOS 4
200
300
500
INGRESOS 5
200
300
500
INGRESOS 6
200
300
500
T1 TOTALES
1200
1800
3000
T2
INGRESOS 7
200
300
500
INGRESOS 8
200
300
500
Total T2
400
600
1000
T3
INGRESOS 9
200
300
500
INGRESOS 10
200
300
500
Total T3
400
600
1000
Total T4
2000
3000
5000
Esto puede parecer excesivo, sin embargo, es útil más adelante.
en mi versión tengo 30 heders diferentes y alrededor de 7 calctypes diferentes
Por ejemplo, el % de ganancia bruta a continuación encuentra algunos de todos aquellos hasta la ganancia bruta del encabezado y encuentra todos aquellos en las ventas totales del encabezado y los divide para obtener una ganancia bruta, luego agrego un tipo de cálculo 4 y en la cantidad combinada agrego otro nivel para 4 = Beneficio bruto.
Beneficio bruto % = (DIVIDE((Si(
HASONEFILTER(GRUPOS[Header])
,
CALCULAR(
[AMT with Report Sign]
,
TODOS LOS GRUPOS)
,
O(GRUPOS[Order] = 15, DimEncabezados[Order] = 17)
,
GRUPOS[MA_TYPE_NO] = 2
)
,
blanco()
)),(Si(
HASONEFILTER(GRUPOS[Header])
,
CALCULAR(
[AMT with Report Sign]
,
TODOS LOS GRUPOS)
,
GRUPOS[Order] = 13
,
GRUPOS[MA_TYPE_NO] = 2
)
,
blanco()
)),EN BLANCO())+1)*100
con esto puede agregar cualquier cantidad de cálculos diferentes que bajan a su estado de resultados.
v-piga-msft
Hola @Teletubbi,
Me temo que algo salió mal. No puedo ver la imagen que subiste.
Si es conveniente, comparta su muestra de datos y el resultado deseado para que podamos ayudarlo más.
Atentamente,
cereza