El operador DAX ‘IN’ no funciona como se esperaba (en realidad)

Un usuario Pregunto ✅

Nicodemo

Hola a todos,

Recibo un error de sintaxis cuando uso el operador ‘IN’: no ​​se presenta como un error en la barra del editor DAX (es decir, la medida no se presenta como un error), pero solo cuando la medida se usa en un objeto visual: por ejemplo, la medida parece estar bien y no muestra errores, pero luego utilizo la medida en un mosaico y aparece un error que indica que hay un error de sintaxis.

También intenté escribir la medida en DAX en un modelo tabular SSAS y obtengo el mismo error de sintaxis; si alguien pudiera ayudarme, se lo agradecería.

Current Sales Count := 
CALCULATE(
DISTINCTCOUNT('FactSales'[Sales ID]),
	FILTER('dimSalesAttributes',[Current Status] IN { "Held","Reserved" })
)

He usado ‘IN’ antes exactamente de la misma manera, y funcionó bien, pero esto es extraño. También intenté copiar y pegar literalmente el ejemplo ‘IN’ de la documentación de DAX y simplemente cambié las referencias de campo, y aún obtengo el error de sintaxis.

Me doy cuenta de que la función de filtro no es necesaria, pero está en esta porque es la última versión que probé.

Muchas gracias,

Mella

Anónimo

@Nickodemus prueba esto

Recuento de ventas actual :=
CALCULAR(
DISTINCTCOUNT(‘VentasHechos'[Sales ID]),
FILTER(‘dimSalesAttributes’,’dimSalesAttributes'[Current Status] EN { «Retenido»,»Reservado» })
)

Nicodemo

En respuesta a Anónimo

Gracias @Anónimo, pero me da el mismo error semántico:

«Error semántico: la sintaxis de ‘IN’ es incorrecta».

He tenido que recurrir a la vieja escuela:

‘dimSalesAttributes'[Current Status] = «Retenido» || ‘dimSalesAttributes'[Current Status] = «Reservado», etc, etc

…que funciona bien, pero es bastante frustrante…

¿Alguna otra idea?

Anónimo

En respuesta a Nicodemo

@Nickodemus, ¿puedes compartir tu archivo power bi para que pueda ver qué sucede? Es difícil depurar el problema sin conocer todas las facetas. Probé el código anterior y funcionó para mí.

Nicodemo

En respuesta a Anónimo

No puedo, tengo miedo @Anónimo, debido a datos confidenciales… Sin embargo, actualmente es muy básico.

Tabla de hechos únicos que contiene datos de ventas y una identificación de ventas (con la que estoy tratando de contar). Conectado a una tabla dimSalesAttribute (esencialmente un dim basura) que contiene estados, indicadores y otras dimensiones relacionadas con los hechos. La relación es unidireccional (1:* – dim:fact).

Estoy tratando de hacer un recuento distinto en la columna de ID de ventas de la tabla de hechos en función de varios valores de la [current status] dimensión de la tabla de atributos (basura dim). Pensé que sería bastante fácil simplemente usar la expresión DAX como se indicó anteriormente… recuento distinto donde el atributo está en ‘Retenido’ o ‘Reservado’…

En respuesta a Nicodemo

Hola @Nickodemus

Puede intentar actualizar la versión de escritorio.

Saludos,

cherie

Nicodemo

En respuesta a v-cherch-msft

Gracias por la sugerencia @v-cherch-msft, pero estoy ejecutando las versiones más recientes de SSMS, Visual Studio y Power BI.

Nicodemo

En respuesta a Anónimo

No puedo, tengo miedo @Anónimo, debido a datos confidenciales… Sin embargo, actualmente es muy básico.

Tabla de hechos únicos que contiene datos de ventas y una identificación de ventas (con la que estoy tratando de contar). Conectado a una tabla dimSalesAttribute (esencialmente un dim basura) que contiene estados, indicadores y otras dimensiones relacionadas con los hechos. La relación es unidireccional (1:* – dim:fact).

Estoy tratando de hacer un recuento distinto en la columna de ID de ventas de la tabla de hechos en función de varios valores de la [current status] dimensión de la tabla de atributos (basura dim). Pensé que sería bastante fácil simplemente usar la expresión DAX como se indicó anteriormente… recuento distinto donde el atributo está en ‘Retenido’ o ‘Reservado’…

Anónimo

En respuesta a Nicodemo

@Nickodemus, ¿podría intentar crear un libro de trabajo con datos ficticios e intentar reproducir el problema?

Nicodemo

En respuesta a Anónimo

Gracias de nuevo @Anónimo – Hice lo que sugieres, y recreé versiones extremadamente reducidas de las mismas tablas en CSV, y las agregué al nuevo modelo PBI… ¡Y la medida funciona bien!

Luego volví a mi modelo tabular de SSAS… lo reduje solo a los campos en cuestión, y sigo teniendo el mismo problema… ¡Error de sintaxis con ‘IN’! ¡Lo copié y pegué!

Estoy totalmente perdido en cuanto a por qué no funciona. ¿Lo único que se me ocurre es que hay algo en mi modelo SSAS que no está configurado para usar todas las funciones DAX? ¿es eso posible?

¿Tiene algo que ver con SSAS…? Acabo de probar de otra manera, pero importando las tablas de SQL directamente en PBI y creando la medida, funciona bien… Así que hay algo que hacer con la creación del modelo en SSAS que tanto Visual Studio como PBI no son Me gusta cuando intento crear el modelo SSAS.

Anónimo

En respuesta a Nicodemo

Hola, yo también tengo el mismo problema… – ¿Encontraste una solución para esto?

Anónimo

En respuesta a Nicodemo

@Nickodemus lamentablemente no estoy seguro de esto. ¿Podrías intentar reconstruir el modelo?

Además, la fórmula para IN ¿está agregando el calc al modelo o al archivo power bi? intenta lo contrario de lo que estás haciendo?

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *