Forum Discussion
Filtrado con ALLEXCEPT()
Hola
Estoy luchando para que una Medida actúe de la manera en que debería usar AllExcept().
Para el contexto, imagina que mis datos son:
| Negocio | Gato | Proyecto | Costar |
| Autobús A | X | P1 | US$ 1 |
| Autobús A | Y | P2 | US$ 5 |
| Autobús A | Y | P3 | US$ 3 |
| Autobús B | X | P4 | US$ 8 |
| Autobús B | Y | P5 | US$ 7 |
Tengo una cortadora para Negocios + Proyecto.
En el tablero, quiero mostrar el costo total de la catergory del proyecto en todo el negocio.
Por ejemplo, si se selecciona el Proyecto 3, la medida devolverá $ 8 (5 + 3). Si se selecciona el Proyecto 1, será de $ 1. Si se selecciona el Proyecto 5, será de $ 7, etc.
Inicialmente, para crear esta medida dupliqué la consulta y agregué los filtros a la tabla antes de llevarla a PowerBI. Llamé a esta tabla TEST.
La medida que creé, que funciona , es
PRUEBA DE SUMA =
CALCULAR(
DISTINCTCOUNT(
TEST[Proyecto]
),
TODOSEXCEPTO(
PRUEBA,
TEST[Negocios],
PRUEBA[Cat]
)
)
Esto funciona como se esperaba.
En mi informe tengo algunos otros filtros en toda la página que también deben tenerse en cuenta. Esto se debe a que el proyecto aparecerá varias veces en el conjunto de datos, pero solo queremos ver uno donde la Fuente = "Principal", Progreso = "Activo" y la fecha es posterior al 01/09/2020.
Sé que quería repetir esta medida con la tabla real (llamada 'Tabla'). Esto, por supuesto, no funcionó correctamente, ya que no estaba considerando los filtros adicionales requeridos del informe.
Pero incluso cuando se agregan los filtros, no funciona. En realidad, parece estar filtrando en exceso los datos, ya que el número es significativamente menor que el real.
La medida se ve así
SUMA 2 REAL =
CALCULAR(
DISTINCTCOUNT(
Tabla[Proyecto]
),
TODOSEXCEPTO(
Mesa,
Tabla[Negocios],
Tabla[Cat],
Tabla[Fuente],
Tabla[Progreso],
Tabla[Fecha]
)
)
¿Alguna pista de por qué esto no está funcionando como se esperaba?
Ninguna combinación de los filtros adicionales está funcionando. ¡Siento que esto debería ser simple!
4 Replies
- Syndicate_AdminAdministrator
@bh21 , allexpect honrará esos filtros de la segmentación de datos / filtro y del contexto de la fila también ,
Puedes probar como
PRUEBA DE SUMA =
CALCULAR(
DISTINCTCOUNT(
TEST[Proyecto]
),
filter(allselected(TEST)
PRUEBA
TEST[Business] = max(TEST[Business]) &&
TEST[Cat] = max(TEST[Cat])
)
)- Syndicate_AdminAdministrator
Hola
Eso es solo devolver el valor para un proyecto. No la suma en todo el catergory para todos los proyectos en ese negocio.
Además, recibo un errorSUM TEST =
CALCULATE(
DISTINCTCOUNT(
TEST[Project]
),
filter(allselected(TEST)PRUEBA
TEST[Business] = max(TEST[Business]) &&
TEST[Cat] = max(TEST[Cat])
)
)Tuve que eliminar esta sección 'PRUEBA',
- Syndicate_AdminAdministrator
Además, ¿por qué el ALLEXCEPT en mi tabla de prueba no honra la cortadora que está vinculada a esa tabla, sino que la que está vinculada a la tabla real lo afecta?
- Syndicate_AdminAdministrator
De acuerdo con su declaración, sé que su lógica de cálculo para obtener el costo de suma basado en todos los valores en el mismo negocio y categoría que el proyecto que seleccione. Hasta donde yo sé, ALLEXCEPT mantendrá el filtro de las columnas en él. Pero solo seleccionamos Proyecto, no Negocio o Categoría. Entonces, creo que no obtendrás el resultado que deseas.
Su medida básica debe verse como se muestra a continuación.
SUM TEST = VAR _SELECTBUSINESS = SELECTEDVALUE ( 'Table'[Business] ) VAR _SELECTCATEGORY = SELECTEDVALUE ( 'Table'[Cat] ) RETURN CALCULATE ( SUM ( 'Table'[Cost] ), FILTER ( ALL ( 'Table' ), 'Table'[Business] = _SELECTBUSINESS && 'Table'[Cat] = _SELECTCATEGORY ) )Luego desea mantener el filtro de [Fuente], [Fecha], [Progreso], así que agréguelos al filtro y cambie TODO a ALLEXCEPT.
SUM TEST = VAR _SELECTBUSINESS = SELECTEDVALUE ( 'Table'[Business] ) VAR _SELECTCATEGORY = SELECTEDVALUE ( 'Table'[Cat] ) RETURN CALCULATE ( SUM ( 'Table'[Cost] ), FILTER ( ALLEXCEPT ( 'Table', Table[Source], Table[Progress], Table[Date] ), 'Table'[Business] = _SELECTBUSINESS && 'Table'[Cat] = _SELECTCATEGORY ) )Saludos
Rico ZhouSi esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.