Forum Discussion
Balance General YTD
Hola a todos,
Mi conjunto de datos de balance general se ve así. Funciona bien cuando estoy creando el balance general del mes real, pero necesito crear un balance general para cada período para poder ver la variación entre meses. ¿Hay una manera de hacer eso?
Gracias
| Cuenta de GL | Periodo | USD |
| 1111 | 2025/01 | 50000 |
| 1111 | 2025/05 | 6000 |
| 1111 | 2024/03 | 90000 |
3 Replies
- Syndicate_Admin
Administrator
Hola @ljimenezvega84 ,
Dado que las cuentas del libro mayor del balance son saldos acumulados de por vida hasta la fecha de las transacciones, si su lista es la lista de transacciones en las cuentas del libro mayor, puede utilizar el cálculo acumulativo, pero si sus datos son el saldo de BS preagregado, filtrará los datos por la fecha máxima. Podré proporcionar el cálculo si puedo aclarar si lo anterior es el saldo agregado o solo las transacciones en la cuenta de BS GL.
Saludos
- Syndicate_Admin
Administrator
Hola @DataNinja777 los datos son acumulativos de por vida hasta la fecha. El BS del 25 de noviembre debería tener todos los datos hasta el 25 de noviembre, pero el BS del 25 de junio debería tener todos los datos hasta el 25 de junio. ¿Esto aclara tu pregunta? Gracias
- Syndicate_Admin
Administrator
Hola @ljimenezvega84 ,
Dado que su columna numérica representa el saldo acumulado de la vida hasta la fecha (es decir, el saldo normal del balance), puede crear una medida como la siguiente para asegurarse de que se recoja el último saldo.
Balance as of Period = // 1. Get the last date of the current period (e.g., "2024-May-31") VAR _LastDateInContext = MAX ( Dim_Date[Date] ) // 2. Find the last *actual* data point in the *entire* fact table VAR _LastOverallSnapshotDate = CALCULATE( MAX(Fact_GL[Period]), ALL(Fact_GL) ) // 3. Check if a date filter is active on the visual (i.e., this is the matrix) VAR _IsDateContextFiltered = ISFILTERED(Dim_Date[Date]) || ISFILTERED(Dim_Date[YearMonth]) // 4. Main Logic: Iterate per account to fix totals RETURN SUMX( // *** THIS IS THE FIX *** // Get the list of GL Accounts, but remove any date filters first. // This stops the iterator from being blank. CALCULATETABLE( VALUES(Fact_GL[GL Account]), REMOVEFILTERS(Dim_Date) ), // A. Find last snapshot date *for the current account* // (This part was correct) VAR _LastSnapshotDateForAccount = CALCULATE ( MAX ( Fact_GL[Period] ), REMOVEFILTERS ( Dim_Date ), Fact_GL[Period] <= _LastDateInContext ) // B. Get the value for that specific date // (This part was correct) VAR _BalanceForAccount = CALCULATE ( SUM ( Fact_GL[USD] ), REMOVEFILTERS ( Dim_Date ), Fact_GL[Period] = _LastSnapshotDateForAccount ) // C. Apply the "no future" rule RETURN IF ( _IsDateContextFiltered && _LastDateInContext > _LastOverallSnapshotDate, BLANK(), _BalanceForAccount ) )El resultado se ve a continuación:
Por favor, hágame saber si esto cumple con sus requisitos o no. Por lo general, si extrae el balance general de ERP, aunque no haya una transacción en un mes en particular, los saldos se generan como se indicó anteriormente, lo que arrastra el saldo de los últimos meses no en blanco.
Adjunto un archivo pbix para su referencia.
Saludos