Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Como modelador de datos, a veces es posible que necesite escribir una DAX expresión que compruebe si una columna está filtrada por un valor específico.
En versiones anteriores de DAX, este requisito se lograba de forma segura mediante el uso de un patrón que implicaba tres funciones: DAX, IF, HASONEVALUE y VALUES. La siguiente definición de medida presenta un ejemplo. Calcula el importe fiscal de ventas, pero solo para las ventas realizadas a los clientes australianos.
Australian Sales Tax =
IF(
HASONEVALUE(Customer[Country-Region]),
IF(
VALUES(Customer[Country-Region]) = "Australia",
[Sales] * 0.10
)
)
En el ejemplo, la HASONEVALUE función devuelve TRUE solo cuando un único valor de la columna Country-Region está visible en el contexto de filtro actual. Cuando es TRUE, la VALUES función se compara con el texto literal "Australia". Cuando la VALUES función devuelve TRUE, la medida Sales se multiplica por 0,10 (que representa 10%). Si la HASONEVALUE función devuelve FALSE,porque más de un valor filtra la columna, la primera IF función devuelve BLANK.
El uso de HASONEVALUE es una técnica defensiva. Es necesario porque es posible que varios valores filtren la columna Country-Region . En este caso, la VALUES función devuelve una tabla de varias filas. Comparar una tabla de varias filas con un valor escalar produce un error.
Recomendación
Se recomienda usar la SELECTEDVALUE función . Logra el mismo resultado que el patrón descrito en este artículo, pero de forma más eficaz y elegante.
Al usar la función SELECTEDVALUE, la definición de la medida de ejemplo ha sido reescrita.
Australian Sales Tax =
IF(
SELECTEDVALUE(Customer[Country-Region]) = "Australia",
[Sales] * 0.10
)
Sugerencia
Es posible pasar un valor de resultado alternativo a la SELECTEDVALUE función . El valor de resultado alternativo se devuelve cuando no se aplica ningún filtro (o varios filtros) a la columna.
Contenido relacionado
- Ruta de aprendizaje: uso de DAX en Power BI Desktop
- ¿Preguntas? Pruebe a preguntar a la comunidad de Power BI
- ¿Sugerencias? Ideas para contribuir a mejorar Power BI