Starting December 3, join live sessions with database experts and the Microsoft product team to learn just how easy it is to get started
Learn moreGet certified in Microsoft Fabric—for free! For a limited time, get a free DP-600 exam voucher to use by the end of 2024. Register now
Mi _Measure no está dando lo que esperaba. Necesito un % para el valor del estado frente al total
La medida de Supid da el 100% cuando se filtra mediante el estado
¿Alguna idea?
El estado y los valores son columnas de la misma tabla de hechos
Valor = Suma('FactTable[Valores])
Así que esta es una versión simplificada de mi tabla de hechos:
date_id | warehoue_id | Estado | Días |
20240101 | 1 | Enviado | 1 |
20240102 | 1 | Enviado | 1 |
20240101 | 2 | compacto | 1 |
20240102 | 2 | Enviado | 1 |
20240101 | 1 | Enviado | 1 |
20240102 | 1 | Enviado | 1 |
20240101 | 2 | compacto | 1 |
20240102 | 2 | Enviado | 1 |
20240101 | 1 | Enviado | 1 |
20240102 | 1 | Enviado | 1 |
Mi objetivo es tener una medida que muestre los días en un estado frente a los días en todos los estados en el contexto de filtro seleccionado.
Así que con este filtrado
fecha = 20240101
Estado = Enviado
La medida debe dar el 60% (3 días en empaquetado y 2 días en enviado = 5 días. 3/5 = 0.6 60%)
O con filtro:
Almacén = 2
Estado = Empaquetado
La medida debe dar el 50% (2 días en empaquetado y 2 días en enviado = 4 días. 2/4 = 0.5 50%)
Mi problema es conseguir que la medida ignore el filtro en el estado y devuelva todos los días para la fecha y el contexto del filtro del almacén.
Ok, lo hice funcionar, se ve así
_TEST =
VAR D = [Días]
VAR AD =
CALCULAR (
[Días],
ALLEXCEPT ( 'factTable', 'factTable'[Warehouse_id], 'Date'[Date_id] )
)
RESULTADO DEL VARA =
DIVIDIR ( D, AD, EN BLANCO () )
DEVOLUCIÓN
RESULTADO
Si reemplazo [Días] en el VAR, AD por D medidas deja de darme todas las filas para el Estado.
De cualquier manera que funcione, muchas gracias por toda la ayuda y los aportes 🙏
Hola, @Mary78
¿Puedo preguntarle si ha resuelto este problema? Si se resuelve, comparta su solución y acéptela como solución, será útil para que otros miembros de la comunidad que tengan problemas similares al suyo lo resuelvan más rápido.
Si no se resuelve, espero que proporcione el archivo .pbix completo a través de OneDrive o SharePoint. Tenga cuidado de eliminar toda la información confidencial y haremos todo lo posible para brindarle ideas para su problema.
Espero que mis sugerencias le den buenas ideas, si tiene más preguntas, aclare en una respuesta de seguimiento.
Saludos
Fen Ling,
Si esta publicación Ayuda, entonces por favor considere Acéptalo como la solución para ayudar a los demás miembros a encontrarlo más rápidamente.
Hola
Comparta algunos datos con los que trabajar y muestre el resultado esperado. Comparta datos en un formato que se pueda pegar en un archivo de MS Excel.
Hola @Mary78 ,
La medida actual divide el valor filtrado por el valor total, ignorando el filtro de estado. Sin embargo, la función ALL solo elimina el filtro de estado, y es posible que no se comporte como se espera cuando se combina con otros filtros
Por favor, pruebe la siguiente medida.
_Measure =
VAR D = [Valor]
VAR AD = CALCULAR(
[Valor],
REMOVEFILTERS('FactTable'[Estado]))
RESULTADO DEL VAR = DIVIDE(D, AD, 0)
RESULTADO DE DEVOLUCIÓN
Si encuentra esto útil, márquelo como una solución que será útil para otros y sus felicitaciones / me gusta 👍 son muy apreciados.
Gracias
Dharmendar S
Hola, por favor pruebe la siguiente medida:
_Percentage =
VAR CurrentValue = SUM('FactTable'[Value]) -- Suma los valores actuales
Valor total del VAR =
CALCULAR(
SUM('FactTable'[Valor]),
REMOVEFILTERS('FactTable'[Status]) -- Eliminar filtros en la columna 'Status'
)
DEVOLUCIÓN
DIVIDE(CurrentValue, TotalValue, BLANK())
Hola @Mary78 ,
Al observar el enfoque actual, es probable que el problema surja porque está usando la función ALL, que quita los filtros de la columna Estado, lo que hace que el resultado siempre se base en la suma total de los valores de todos los estados, incluso cuando se filtra la tabla.
Pruebe esta versión actualizada de su medida:
_Measure =
VAR D = [Value] -- The sum of 'FactTable[Values]' in the current context
VAR AD =
CALCULATE (
[Value], -- The total sum of values across the entire FactTable (not just filtered by Status)
REMOVEFILTERS('FactTable'[Status]) -- This removes only the filter on the 'Status' column
)
VAR RESULT =
DIVIDE(D, AD, BLANK()) -- Dividing the current value by the total value to get the percentage
RETURN
RESULT
Gracias a todos ustedes por las respuestas, desafortunadamente ninguno de ellos ha resuelto mi problema.
Entonces la cosa es que este formato para una medida % funciona bien cuando la columna que no quiero filtrar está en un tabel tenue y no en el hecho donde está el valor.
Entonces, ¿el problema es que el valor y la columna en la que quiero eliminar el filtro están en la misma tabla?
Hola @Mary78 ,
Pruebe esta medida:
_Measure =
VAR D = [Value] -- The current value based on filters
VAR AD =
CALCULATE(
[Value],
ALLEXCEPT('FactTable', 'FactTable'[Other Columns...]) -- Preserve filters on other columns except Status
)
VAR RESULT =
DIVIDE(D, AD, BLANK()) -- Calculate the percentage
RETURN
RESULT
Si lo anterior no funciona, considere probar este con SUMX:
_Measure =
VAR D = [Value]
VAR AD =
SUMX(
ALL('FactTable'[Status]),
CALCULATE(SUM('FactTable'[Values]))
)
VAR RESULT =
DIVIDE(D, AD, BLANK())
RETURN
RESULT
Hola @Mary78
Por favor, pruebe ALLSELECTED allí
Saludos
Ritesh
✔️ Por favor, marque la respuesta si es útil para que pueda ayudar a otros también😊
Starting December 3, join live sessions with database experts and the Fabric product team to learn just how easy it is to get started.
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Early Bird pricing ends December 9th.