- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Reemplazar categoría usando CALCULATE y ALL para un P&L
Hola
Estoy luchando en una medida para mi declaración de pérdidas y ganancias. El modelo en sí es muy básico:
En mi tabla muestro la descripción de nivel 1 en las filas.
Y normalmente para mi ganancia y pérdida utilizo 2 medidas básicas. Uno para cuentas individuales ?
CALCULATE(
[ Total Amount],
'Chart of Accounts'[Reporting Type] = "Profit and Loss" )
y uno para subtotales:
CALCULATE( [Total Amount],
FILTER(
ALL( 'Chart of Accounts'[Level 1 Description], 'Chart of Accounts'[Level 1 Sort] ),
'Chart of Accounts'[Level 1 Sort] <= MAX( 'Chart of Accounts'[Level 1 Sort] ) ),
KEEPFILTERS( 'Chart of Accounts'[Reporting Type] = "Profit and Loss" ) )
Mi reto es el siguiente: Me gustaría corregir algunos números. Y los números a corregir se incluyen en el Plan de Cuentas -> Nivel 1 Descripción llamada 'Normalizaciones'. Así que mi idea es cambiar el contexto del filtro, para incluir sólo las "Normalizaciones" del Plan de Cuentas. Esto filtrará la jerarquía de contabilidad, que a su vez filtra las transacciones de contabilidad.
Marco y Alberto de SQLBI me enseñaron que es mejor cambiar el contexto del filtro eligiendo columnas específicas para ALL() en su instrucción CALCULATE. Así que lo que intenté es:
PnL Measure =
CALCULATE( [Total Amount],
FILTER( ALL( 'Chart of Accounts'[Level 1 Description] ),
'Chart of Accounts'[Level 1 Description] = "Normalisations" ) )
Estos resultados solo muestran el importe de la "Normalización" en la fila "Normalización" de la descripción de nivel 1.
Esperaba que mostrara la cantidad de "Normalización", en TODAS las filas de La descripción de nivel 1. Después de todo, utilicé ALL para proporcionar a cada una de esas filas toda la tabla de combinaciones de descripción de nivel 1.
Una medida que funciona.
PnL Measure 1 =
CALCULATE( [Total Amount],
FILTER( ALL( 'Chart of Accounts' ),
'Chart of Accounts'[Level 1 Description] = "Normalisations" ) )
Pero esto utiliza la función ALL en toda la tabla del plan de cuentas. Lo cual intenté evitar. A continuación se muestra el resultado:
¿Alguien puede sugerir una solución aquí? O al menos explicar por qué una medida funciona, y la otra no ?
Gracias de nuevo,
Rick
Editar: La medida mostraba la descripción del Nivel 1 en lugar del Nivel 1.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Dado que este hilo se marcó como spam, lo he rellenado. Y ahora se responde en:
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Dado que este hilo se marcó como spam, lo he rellenado. Y ahora se responde en:
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

@Rickmaurinus
Para la siguiente medida, puede utilizar VALORES que respeten el filtro existente en LEVEL1 y no iterar toda la tabla
PnL Measure 1 =
CALCULATE(
[Total Amount],
FILTER( VALUES( 'Chart of Accounts'[Level 1]),
'Chart of Accounts'[Level 1] = "Normalisations" )
)
En la siguiente medida, noté que está borrando los filtros en [Descripción de nivel 1] y luego filtrar [Nivel 1] .
Medida de PnL (PnL Measure)
CALCULATE( [Importe total],
FILTRO( ALL( 'Plan de Cuentas'[Nivel 1 Descripción] ),
'Gráfico de cuentas'[Nivel 1] - "Normalizaciones" ) )
________________________
Si mi respuesta fue útil, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla
Haga clic en el icono Thumbs-Up si le gusta esta respuesta 🙂
⭕ Subscribe and learn Power BI from these videos
⚪ Website ⚪ LinkedIn ⚪ PBI User Group
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Hola Fowmy,
Gracias por detectar que borré los filtros en [Descripción de nivel 1] y filtré [Nivel1]. Esto fue un error al describir mi publicación. He cambiado la descripción del post. El problema sigue siendo.
Intenté su sugerencia con
PnL Measure 1 =
CALCULATE(
[Total Amount],
FILTER( VALUES( 'Chart of Accounts'[Level 1 description]),
'Chart of Accounts'[Level 1 description] = "Normalisations" )
)
Esto da como resultado que sólo el nivel 1 que se llama 'Normalizaciones' muestra el número correcto. Mi objetivo es mostrar ese número, sin importar el nivel que se muestre.
La medida usando ALL( 'Chart of Accounts' ) muestra el resultado que quiero, pero utiliza ALL() en toda la tabla. Tengo curiosidad si hay una manera de usar ALL( ) en una sola /pocas columnas y aún así obtener el resultado que quiero.
Mejor
Rick
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

@Rickmaurinus Intente usar ALLEXCEPT o REMOVEFILTERS en lugar de ALL.
Follow on LinkedIn
@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!: Power BI Cookbook Third Edition (Color)
DAX is easy, CALCULATE makes DAX hard...

Helpful resources
Join us at the Microsoft Fabric Community Conference
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!
Power BI Monthly Update - February 2025
Check out the February 2025 Power BI update to learn about new features.

Subject | Author | Posted | |
---|---|---|---|
04-24-2020 10:09 AM | |||
02-14-2021 02:45 PM | |||
02-13-2021 01:59 PM | |||
05-01-2021 10:49 PM | |||
10-06-2023 06:05 AM |