Trabajar con el comportamiento del filtro de valores (versión preliminar)
Las opciones de comportamiento del filtro de valor de Power BI permiten influir en el mecanismo de filtrado automático presente en DAX que se produce cuando se filtran varias columnas de la misma tabla. Este comportamiento se denomina informalmente "auto-exist".
¿Qué es el comportamiento del filtro de valor?
Cuando se filtran varias columnas de la misma tabla, DAX entiende que probablemente no todas las combinaciones de valores de estas columnas sean válidas y, como resultado, excluye automáticamente combinaciones no válidas. El motor DAX generó un filtro de valor combinado que no solo devuelve combinaciones válidas, sino que también afecta a los cálculos medidos. La configuración de comportamiento del filtro de valor permite cambiar este comportamiento en el modelo semántico. Puede decidir si desea desactivar los filtros de valores combinados y activar filtros de valores independientes en su lugar. Al activar filtros de valor independientes, establezca la configuración de comportamiento del filtro de valor en Independiente (vea más adelante en este artículo) hace que varios filtros de la misma tabla se mantengan separados en lugar del motor DAX que combina estos filtros en uno.
Descripción del comportamiento del filtro de valor
Cuando se filtran varias columnas en la misma tabla, el comportamiento del filtro de valor predeterminado actual toma estos filtros y los combina en uno, teniendo en cuenta solo las combinaciones que existen. Tenga en cuenta las dos columnas siguientes en la misma tabla:
- Year, que contiene valores como "2023".
- Month, que contiene valores como "enero de 2024".
Si filtra por Año y Mes, ya que estas columnas están en la misma tabla, el comportamiento del filtro de valor combina los filtros en uno, pero solo se tienen en cuenta las combinaciones que existen. La combinación del mes de enero de 2024 con el año 2023 no existe y no se incluiría en el filtro. Sin embargo, hay situaciones en las que los resultados son sorprendentes.
Echemos un vistazo a un ejemplo, donde tenemos un catálogo que muestra la disponibilidad de colores para los productos por año. El fabricante de estos productos experimentó con la fabricación de productos en varios colores a lo largo de los años:
Tenemos tres productos que estaban disponibles en varios colores a lo largo de los años. Observe cómo no hay productos rojos ofrecidos en 2024. Esto va a ser importante un poco más tarde. Ahora, vamos a contar el número de productos agregando la siguiente medida:
Number of Products = COUNTROWS( 'Catalog' )`
En la matriz siguiente se muestra el número de productos disponibles en varios colores al año:
Ahora, vamos a agregar otra medida para calcular el número total de productos durante todos los años:
Number of Products All Years = CALCULATE ( [Number of Products], ALL ( 'Catalog'[Year] ) )
Pongamos estas medidas en paralelo y filtremos el año 2023 y solo los colores azul y rojo (así que no negro). Puede ver que el número de productos es 4 y el número de productos en todos los años para estos dos colores es 6:
Si cambiamos el Año a 2024, esperamos que la medida "Número de productos" devuelva 2, ya que hay solo dos productos azules en 2024 y no hay productos rojos en ese año. Además, esperamos que el número de productos de todos los años no cambie, porque, después de todo, se supone que se calcula en todos los años. Sin embargo, el "Número de productos para todos los años" cambia de 6 a 5:
El número de productos en todos los años debe ser 6, no 5. Lo que vemos aquí es el comportamiento del filtro de valor en acción: combina filtros en la misma tabla, quitando combinaciones que no existían. Los filtros son Year = 2024 y Color = Azul o Rojo. Dado que estos dos filtros están en la misma tabla, estos filtros se combinan en un filtro que solo filtra las combinaciones que existen. Puesto que no hay productos rojos en 2024, el filtro aplicado es Year = 2024 y Color = Azul. Por lo tanto, el número de productos de todos los años cuenta ahora solo el número de productos azules, no los productos azules o rojos. Esto devuelve 5, como puede confirmar en la tabla.
Influir en el comportamiento del filtro de valor
Puede controlar si desea este comportamiento en el modelo semántico mediante la configuración Comportamiento de filtro de valor en el modelo semántico en el panel de propiedades de la vista modelo:
Hay tres opciones disponibles:
- Automático : esta es la configuración predeterminada y activa actualmente el comportamiento de Coalesced. Cuando encapsulamos esta versión preliminar, los nuevos modelos establecidos en Automático usarán Independiente, se anunciará en ese momento.
- Independiente : esto obliga a que los filtros de la misma tabla se mantengan separados. Después de establecer el valor "Comportamiento de filtro de valor" en Independiente, el número total de productos de todos los años devuelve 6 según lo previsto (consulte a continuación).
- Combinado: esto obliga a habilitar el comportamiento del filtro de valor para el modelo semántico y da como resultado la combinación de los filtros de la misma tabla en una. El número de productos de todos los años de nuestro ejemplo continúa regresando a 5.
En la tabla siguiente se muestra el efecto de esta configuración en nuestro ejemplo:
Configuración del comportamiento del filtro de valor | Filtros aplicados en el ejemplo | Resultado de la medida de ejemplo |
---|---|---|
Automático | Año = 2024, Color = azul |
5 |
Independiente | Año = 2024, Color = Azul o Rojo |
6 |
Coalesced | Año = 2024, Color = azul |
5 |
Establecer el comportamiento del filtro Valor en Automático significa que es igual a Coalesced por ahora, pero se cambiará a Independiente para los nuevos modelos semánticos en el futuro. Si establece el comportamiento del filtro Valor en Independiente, el número de productos para todos los resultados es 6, según lo previsto, ya que los filtros son Year = 2024 y Color = Azul o Rojo y ya no se combinan:
Pasos siguientes
Los siguientes artículos pueden ser útiles: