Get certified in Microsoft Fabric—for free! For a limited time, the Microsoft Fabric Community team will be offering free DP-600 exam vouchers. Prepare now
Estoy trabajando con algunas tablas diferentes y estoy tratando de mostrar varias piezas de información en un solo panel: una combinación de detalles específicos sobre un cliente y alguna información agregada sobre la cuenta más grande de ese cliente (1 entre muchas cuentas).
Esto es lo que tengo hasta ahora, y lo que estoy tratando de lograr:
Mesa de ventas
customer_id | Año | Monto de la venta |
1 | 2023 | $45 |
1 | 2024 | $45 |
1 | 2024 | $5 |
2 | 2024 | $20 |
3 | 2024 | $75 |
4 | 2024 | -$10 |
Tabla de clientes
customer_id | customer_name |
1 | Juan Fulano |
2 | Kathy Sims |
3 | Corazón de Bret |
4 | Pat Blaine |
Tabla de cuentas
account_id | account_name |
100 | Gato curioso |
200 | Perro delicado |
300 | Hurones de fantasía |
Tabla de unión a la cuenta de cliente
customer_id | account_id |
1 | 100 |
2 | 100 |
3 | 200 |
4 | 300 |
Tengo una cortadora en mi tablero, junto con un filtro configurado en 2024, de modo que puede seleccionar John Doe y aparecerá una tabla de solo sus transacciones de 2024, que tendrá una fila total para que pueda ver sus ventas totales ($ 50).
Con la siguiente medida, también puedo hacer que una tarjeta llene el total de transacciones de su cuenta (100) en 2024: $70
Ventas totales de la cuenta = CALULATE(SUM('TABLA DE VENTAS'[Importe de la venta]),ALL('Tabla de unión a la cuenta de cliente',VALUES('Tabla de unión a la cuenta de cliente'[account_id))
Lo que estoy tratando de lograr ahora es usar un medidor para mostrar cómo se compara la cuenta de John Doe con las otras cuentas, pero no puedo averiguar cómo configurar correctamente el máximo y los minutos. En otras palabras, al hacer clic en John Doe, el indicador mostrará las ventas totales de su cuenta de $ 70 , siendo el indicador mínimo la cantidad más baja (-$ 10, Fancy Ferrets solo ha tenido un reembolso este año) y la cantidad más alta ($ 75 para Dainty Dogs). Por el contrario, si hiciera clic en Kathy Sims, se actualizaría la tabla a sus transacciones, pero el medidor seguiría siendo el mismo (ya que pertenece a la misma cuenta que John Doe), pero cambiaría si se eligiera un cliente de una cuenta diferente (manteniendo el mínimo y el máximo iguales).
De esta manera, en lugar de usar tres tarjetas diferentes (una para Curious Cat, la cuenta del cliente seleccionado; una para el máximo; y otra para el mínimo), puedo poner las tres piezas de esta información en una visualización que también mostrará qué tan cerca está el valor del máximo/mínimo (es decir, cuánto se acumula Curious Cat en relación con otras cuentas, no un mínimo / máximo codificado de forma rígida).
El mayor problema que estoy encontrando es que debido a que las ventas totales de la cuenta son una medida, no puedo ponerle más agregados, como mín./máx.
¿Cuáles son mis opciones?
Solved! Go to Solution.
Esto es lo que terminó funcionando para mí:
CuentaTotalVentas =
CACLULADO(
SUM('Tabla de ventas' [importe de la venta]),
ALL('Tabla de unión a la cuenta de cliente'),
VALUES('Tabla de unión a cuenta de cliente[account_id])
)
MaxAccountSales =
MAXX(
RESUMIR(
ALL('Tabla de unión a la cuenta de cliente'),
«Tabla de unión a la cuenta de cliente»[account_id],
"Ventas máximas",
CACLULADO(
SUM('Tabla de ventas' [importe de la venta]),
ALL('Tabla de unión a la cuenta de cliente'),
VALUES('Tabla de unión a cuenta de cliente[account_id])
),
[Ventas máximas]
)
MinAccountSales =
MINX(
RESUMIR(
ALL('Tabla de unión a la cuenta de cliente'),
«Tabla de unión a la cuenta de cliente»[account_id],
"Ventas mínimas",
CACLULADO(
SUM('Tabla de ventas' [importe de la venta]),
ALL('Tabla de unión a la cuenta de cliente'),
VALUES('Tabla de unión a cuenta de cliente[account_id])
),
[Ventas mínimas]
)
Todos estos responden a cualquier filtro que agregue a la página, por lo que no necesito hacer que mi código haga referencia a ellos.
Esto es lo que terminó funcionando para mí:
CuentaTotalVentas =
CACLULADO(
SUM('Tabla de ventas' [importe de la venta]),
ALL('Tabla de unión a la cuenta de cliente'),
VALUES('Tabla de unión a cuenta de cliente[account_id])
)
MaxAccountSales =
MAXX(
RESUMIR(
ALL('Tabla de unión a la cuenta de cliente'),
«Tabla de unión a la cuenta de cliente»[account_id],
"Ventas máximas",
CACLULADO(
SUM('Tabla de ventas' [importe de la venta]),
ALL('Tabla de unión a la cuenta de cliente'),
VALUES('Tabla de unión a cuenta de cliente[account_id])
),
[Ventas máximas]
)
MinAccountSales =
MINX(
RESUMIR(
ALL('Tabla de unión a la cuenta de cliente'),
«Tabla de unión a la cuenta de cliente»[account_id],
"Ventas mínimas",
CACLULADO(
SUM('Tabla de ventas' [importe de la venta]),
ALL('Tabla de unión a la cuenta de cliente'),
VALUES('Tabla de unión a cuenta de cliente[account_id])
),
[Ventas mínimas]
)
Todos estos responden a cualquier filtro que agregue a la página, por lo que no necesito hacer que mi código haga referencia a ellos.
Hola @jam17,
¿Puedes probar este enfoque?
1. Crear una medida para las ventas totales por cuenta
AccountTotalSales =
CALCULATE(
SUM('Sales Table'[sale amount]),
ALL('Customer Account Join Table', 'Customer Table', 'Account Table'),
'Customer Account Join Table'[account_id] =
SELECTEDVALUE('Customer Account Join Table'[account_id])
)
2. Crear una medida para las ventas mínimas en todas las cuentas
MinAccountSales =
MINX(
SUMMARIZE(
ALL('Account Table'),
'Account Table'[account_id],
"TotalSales",
CALCULATE(
SUM('Sales Table'[sale amount]),
'Customer Account Join Table'[account_id] = 'Account Table'[account_id],
'Sales Table'[Year] = 2024
)
),
[TotalSales]
)
3. Crear una medida para las ventas máximas en todas las cuentas
MaxAccountSales =
MAXX(
SUMMARIZE(
ALL('Account Table'),
'Account Table'[account_id],
"TotalSales",
CALCULATE(
SUM('Sales Table'[sale amount]),
'Customer Account Join Table'[account_id] = 'Account Table'[account_id],
'Sales Table'[Year] = 2024
)
),
[TotalSales]
)
Espero que esto ayude.
También recibo un error con la siguiente línea:
'Customer Account Join Table'[account_id] = 'Account Table'[account_id],
Dice "La expresión contiene columnas de varias tablas, pero solo las columnas de una sola tabla se pueden usar en una expresión Verdadero/Falso que se usa como expresión de filtro de tabla".
Al establecer
'Sales Table'[Year] = 2024
¿Es eso codificarlo duro?
¿Cómo puedo hacer que el mín./máx. sea dinámico para el año seleccionado por el filtro?
Del mismo modo, ¿qué sucede si quisiera agregar otro filtro, como la región?
Check out the October 2024 Power BI update to learn about new features.
Learn from experts, get hands-on experience, and win awesome prizes.
User | Count |
---|---|
1 | |
1 | |
1 | |
1 | |
1 |