Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more.
Get startedGrow your Fabric skills and prepare for the DP-600 certification exam by completing the latest Microsoft Fabric challenge.
Hola
Tengo un problema y no tengo idea de cómo resolverlo. Necesito ayuda.. Por favor..
Estoy creando un informe de saldo en PBI, en un Archivo tengo el menú con las opciones (filas) para mostrar y cada fila tiene el grupo de cuentas de balance para resumir.
Es algo como esto:
Report_Name | codeMenu | Línea # | Submenú | Descripción de la fila | Submenú | Descripción de la fila | Tipo de cuenta | Sub de cuenta | Cat3 | Gato6 |
Principales gastos | A002 | 6 | A0026 | Otros gastos | A00261 | Uniformes de mantenimiento | 1010 | 1900 | REC | *Todos |
Principales gastos | A002 | 6 | A0026 | Otros gastos | A00262 | Misc. | 1010 | 1360 | REC | OTH |
Principales gastos | A002 | 6 | A0026 | Otros gastos | A00265 | Misc. | 1010 | 1990 | REC | *Todos |
Principales gastos | A002 | 6 | A0026 | Otros gastos | A00269 | Manteles | 7307 | 1002 | REC | ESTROPEAR |
Por otro lado, tengo otro archivo con un saldo de transacciones para resumir por grupo de cuentas
Es algo como esto:
Objeto | Sub | Descripción | ESTE cat03 | ESTE cat06 | ENE | FEB |
1010 | 1900 | Uniformes | REC | ESTROPEAR | 100.00 | 743.34 |
1010 | 1900 | Uniformes | FREGONA | ESTROPEAR | 95.00 | - |
1010 | 1900 | Uniformes | REC | MAR | 302.00 | 488.00 |
1010 | 1900 | Uniformes | FREGONA | ESTROPEAR | 35.00 | 65.00 |
1010 | 1990 | Misceláneo | REC | ESTROPEAR | 122.00 | 60.00 |
1010 | 1990 | Misceláneo | FREGONA | ESTROPEAR | 85.00 | 120.00 |
1010 | 1990 | Misceláneo | REC | MAR | 100.00 | 101.49 |
1010 | 1990 | Misceláneo | FREGONA | ESTROPEAR | 505.00 | - |
1010 | 1990 | Misceláneo | REC | MAR | 12.00 | 365.00 |
1010 | 1990 | Misceláneo | H1H | MAR | 120.00 | 11.00 |
1010 | 1990 | Misceláneo | REC | ESTROPEAR | 878.00 | - |
7307 | 1002 | Uniformes - Calificado | REC | OTH | - | 250.00 |
7307 | 1002 | Uniformes - Calificado | PHO | HTL | 200.00 | 100.00 |
7307 | 1002 | Uniformes - Calificado | REC | ESTROPEAR | 345.00 | 500.00 |
7307 | 1002 | Uniformes - Calificado | FOO | HTL | 122.00 | 55.00 |
7307 | 1002 | Uniformes - Calificado | REC | MAR | 250.00 | 300.00 |
Ahora, en el informe la idea es mostrar 1 fila con el total, en este caso
Principales gastos | Tipo de gastos | ENE | FEB |
Otros gastos | 2,691.00 | 2,888.83 |
Ahora bien, el problema que tengo es resumir las cantidades en función de los códigos de categoría (Cat3 y Cat 6), porque a veces tengo Cat3 y Cat 6 específicos, por ejemplo el código A00269 tienen Cat3='REC' y Cat6='MAR', pero en los otros casos tengo un Cat 3 específico, pero con todo el código de Categoría 6 (Por ejemplo el código A00261 tiene Cat3='REC' pero con todo el código de categoría 6 (Cat6).
No puedo crear una relación entre ambos archivos, debido a que hay muchos registros con código de categoría 6 y combinaciones distintas
Si alguno de ustedes tiene una idea de cómo manejar este tipo de casos, ¿podría guiarme sobre cómo resolverlo?
Solved! Go to Solution.
Pruebe la siguiente fórmula:
Total Values =
VAR temp_table =
FILTER (
CROSSJOIN ( 'Balance sheet accounts', 'Balance Transactions' ),
'Balance sheet accounts'[Account Sub] = 'Balance Transactions'[Sub]
&& 'Balance sheet accounts'[Account Type] = 'Balance Transactions'[Object]
&& 'Balance sheet accounts'[Cat3] = 'Balance Transactions'[BU Cat03]
&& ( 'Balance sheet accounts'[Cat6] = 'Balance Transactions'[BU Cat06]
|| 'Balance sheet accounts'[Cat6] = "*All" )
)
RETURN
SUMX ( temp_table, 'Balance Transactions'[Value] )
Esto está dando el resultado correcto para la pequeña muestra que presenta, sin embargo, no estoy seguro de si volverá correctamente en sus valores generales, ya que los detalles pueden marcar la diferencia:
También tenga en cuenta que he unpivot las transacciones para no tener un cálculo para cada columna.
Verifique el archivo PBIX adjunto.
Ese comando CrossJoin funciona bien. Realmente aprecio su ayuda.. ¡¡Muchas gracias!!
En este caso, debe crear dos tablas de dimensiones con Cat3 y CAT 6 y luego relacionar estas tablas con las otras dos que crearán la relación a la que hace referencia.
Solo una pregunta cuando dice en CAT6: *¿Todo es este el valor que tienes o no pusiste todos los valores en el ejemplo porque son muchos?
Hi Miguel,
Hay aprox 20 Categoría 6 (Cat6), entonces cuando digo '*Todo' es a no escribir en detalle los 20 códigos de Cat6.
Esa es mi preocupación, en algunas filas tengo que vincular ambos archivos solo con 1 Cat 6, y hay otras filas donde no importa, porque es para todos Cat6.
Si crea las tablas de dimensiones para CAT3 y CAT6 con valores únicos, esas dimensiones filtrarán todo. simularás un many a muchos con un many a uno a muchos.
¿O su pregunta es cómo escribir la primera tabla sin una sola línea para cada valor?
Hola, en mi informe necesito mostrar solo 1 línea con el resumen por Cuenta OBJ, Cuenta Sub, Cat3 y Cat 6..
No entendí su solución, quiero decir, cree una tabla para las Categorías 3 (Cat3), otra tabla para las Categorías 6 (Cat 6) ?.. ?.. ¿Cómo puedo relacionar cada tabla con mis tablas actuales?
Cuando me refiero a una relación es un modelo similar a este:
¿Puede ver que hay una relación entre ambas tablas hecha por las tablas de dimensiones?
Mi pregunta ahora se refiere a CAT6 ya que tienes en la primera tabla un valor de ALL ¿tendrás una línea para eaxch uno, por lo que si haces un modelo similar al anterior funcionará correctamente o tendrás el valor ALL en el CAT 6 y quieres recoger todo el CAT en las transacciones aunque no estén explícitas en el saldo del Grupo?
Hi Miguel,
Usando tu imagen 'Balance de Grupo' Cuando el campo Cat6='ALL', no tengo en el fichero de detalles registros con CAT6='ALL', debido a que ese valor no es un CAT6 válido (solo es un valor de referencia para identificar que en la segunda tabla pueden existir múltiplos CAT6 que hay que resumir)
Por ejemplo, en el fichero de detalles pueden existir registros con CAT6 con estos valores ("MAR","COE","REP","RWE","PEE", etc) (Existen alrededor de 30 CAT6 válidos).
Entonces, la idea es:
A) Si encontré un registro en la Primera tabla con CAT6=ALL, entonces necesito resumir los registros en la Segunda tabla con CAT6 IN ("MAR","COE","REP","RWE","PEE", etc).).
B) Para cualquier otro valor en la primera tabla Distint to ALL, puedo buscar el valor exacto en el segundo archivo, Por ejemplo: Si encontré un registro en la Primera tabla con CAT6="MAR", entonces necesito resumir solo los registros en la Segunda tabla con CAT6="MAR".
Espero que esto ayude a entender mi problema,
Creo que ahora entiendo su necesidad, sin embargo, estoy confundido sobre el resultado final que necesita.
¿Has visto a continuación si recojo el enero que obtengo 2109 para el REC en CAT3 si comparo esto con el valor que tienes (2.691) me falta 532. Ese creo que es el valor de CAT6.
¿Puede decir cómo calcula el valor en el ejemplo que dio?
Hola, lo siento, tengo un error en mis cálculos.
Hice una nueva tabla con ambos archivos, el total para JAN debe ser 1859.
Tabla1 Report_Name | Descripción de la fila Table1 | Descripción de la fila Table1 | Tabla1 Tipo de cuenta | Tabla1 Subcuenta | Tabla1 Cat3 | Tabla1 Cat6 | Table2 (objeto) | Tabla2 Sub | Tabla2 Cat03 | Tabla2 Cat06 | ENE | FEB |
Principales gastos | Otros gastos | Uniformes de mantenimiento | 1010 | 1900 | REC | *Todos | 1010 | 1900 | REC | ESTROPEAR | 100.00 | 743.00 |
1010 | 1900 | REC | MAR | 302.00 | 488.00 | |||||||
Principales gastos | Otros gastos | Misc. | 1010 | 1360 | REC | OTH | ||||||
Principales gastos | Otros gastos | Misc. | 1010 | 1990 | REC | *Todos | 1010 | 1990 | REC | ESTROPEAR | 122.00 | 60.00 |
1010 | 1990 | REC | MAR | 100.00 | 101.00 | |||||||
1010 | 1990 | REC | MAR | 12.00 | 365.00 | |||||||
1010 | 1990 | REC | ESTROPEAR | 878.00 | - | |||||||
Principales gastos | Otros gastos | Manteles | 7307 | 1002 | REC | ESTROPEAR | 7307 | 1002 | REC | ESTROPEAR | 345.00 | 500.00 |
Principales gastos | 1,859.00 | 2,257.00 |
Pruebe la siguiente fórmula:
Total Values =
VAR temp_table =
FILTER (
CROSSJOIN ( 'Balance sheet accounts', 'Balance Transactions' ),
'Balance sheet accounts'[Account Sub] = 'Balance Transactions'[Sub]
&& 'Balance sheet accounts'[Account Type] = 'Balance Transactions'[Object]
&& 'Balance sheet accounts'[Cat3] = 'Balance Transactions'[BU Cat03]
&& ( 'Balance sheet accounts'[Cat6] = 'Balance Transactions'[BU Cat06]
|| 'Balance sheet accounts'[Cat6] = "*All" )
)
RETURN
SUMX ( temp_table, 'Balance Transactions'[Value] )
Esto está dando el resultado correcto para la pequeña muestra que presenta, sin embargo, no estoy seguro de si volverá correctamente en sus valores generales, ya que los detalles pueden marcar la diferencia:
También tenga en cuenta que he unpivot las transacciones para no tener un cálculo para cada columna.
Verifique el archivo PBIX adjunto.
Ese comando CrossJoin funciona bien. Realmente aprecio su ayuda.. ¡¡Muchas gracias!!
Join the community in Stockholm for expert Microsoft Fabric learning including a very exciting keynote from Arun Ulag, Corporate Vice President, Azure Data.
Ask questions in Eventhouse and KQL, Eventstream, and Reflex.
User | Count |
---|---|
3 | |
1 | |
1 | |
1 | |
1 |