DAX SWITCH TRUE: se necesita ayuda

Un usuario Pregunto ✅

DavePBI

Hola comunidad/expertos en DAX,

Necesito ayuda aquí en la declaración DAX de que no puedo trabajar.

tengo 2 mesas:

1) VW_Dim_Relatie (= tabla de clientes) con una columna SoortRelatie con valores 00010, 00020, V1 y V3.

2) VW_Fact_Dekking (= tabla de valores del cliente) con una columna IncassoProvisie_Jr con valores vacíos, 0 y hasta 10.000. Basado en este valor, he creado grupos de bandas conectados a un valor específico, por ejemplo, PB está entre 0 y 100, etc.

Me gustaría agregar una columna a la tabla VW_Dim_Relatie que se llame «Segmentación de clientes». Eso necesita dar valores «0», «PB», «PZ», «PG» para el tipo de relación 00010. Y valores «0», «ZB», «ZZ», «ZG» y «ZP» para el tipo de relación 00020 Para los tipos de relación V1 y V3 se necesita dar valores «V1» y «V3». Si el valor del campo está vacío, entonces debe dar «sin estado».

Encuentre a continuación mi declaración DAX SWITCH TRUE (). Recibo el mensaje en la parte inferior «se alcanzó el final de esta entrada». ¿Pueden ayudarme y orientarme sobre lo que sale mal aquí? ¡Gracias de antemano!

Captura de pantalla.jpeg

az38

En respuesta a DavePBI

hola @DavePBI

depende de la lógica de su negocio.

debe comprender qué valor exacto desea usar para definir EK para cada elemento.

tal vez PROMEDIO(), tal vez SUMA(). todo se trata de la tarea

No sé cuál es el propósito de su informe, cuál es la naturaleza de los datos, etc.

az38

Hola @DavePBI

Es por 2 problemas:

1. delimitadores. Debes usar solo «;» o «,» depende de la configuración regional. Te apuesto «;» en tu caso será correcto

2. doble [[. use the only [SoortRelatie], no [[SoortRelatie]]

DavePBI

En respuesta a az38

Hola az38,

Gracias por volver a mí. Gracias por la retroalimentación. Cometí un error al enviar una imagen incorrecta en eso. Vea a continuación la correcta.

Como puede ver, el problema proviene del hecho de que no puede encontrar la columna ‘IncassoProvisie_Jr’ debido al hecho de que es una tabla vinculada secundaria.

Entonces, para explicar más, tengo 3 tablas en esta configuración. VW_Dim_Relatie está vinculado 1 a * con una segunda tabla y esa segunda tabla también está vinculada con una conexión 1 a * a la tercera tabla VW_Fact_Dekking que contiene la columna ‘IncassoProvisie_Jr’ que necesito.

¿Alguna idea para superar esto? Gracias de nuevo por los comentarios.

Captura de pantalla 2.jpeg

Anónimo

En respuesta a DavePBI

Si su tabla está vinculada a otra a través de 1:*, entonces, en primer lugar, puede haber muchos valores en la segunda tabla para una sola fila en la primera tabla y, en segundo lugar, para llegar al lado «varios» de la relación que tiene. para usar TABLA RELACIONADA.

Le sugiero que piense bien de nuevo en lo que quiere hacer porque lo que está tratando de hacer en este momento no es factible.

Mejor
D

az38

En respuesta a DavePBI

@DavePBI

El problema es que tiene algunas filas relacionadas de Tabla VW_Fact_Dekking

Por lo tanto, debe definir la lógica con el valor exactamente relacionado que desea usar. Puede ser MAX, MIN, SUM, etc. o PRIMERO NO EN BLANCO.

por ejemplo

EK =
var _IncassoProvisie_Jr = CALCULATE(FIRSTNONBLANK(VW_Fact_Dekking[IncassoProvisie_Jr]);1)
RETURN
SWITCH(TRUE();
VW_Dim_Relatie[SoortRelatie] = "00010" &&  _IncassoProvisie_Jr=0; "0";
VW_Dim_Relatie[SoortRelatie] = "00010" &&  _IncassoProvisie_Jr < 100; "PB";
"no_status"
)

o

EK =
var _IncassoProvisie_Jr = CALCULATE(MIN(VW_Fact_Dekking[IncassoProvisie_Jr]))
RETURN
SWITCH(TRUE();
VW_Dim_Relatie[SoortRelatie] = "00010" &&  _IncassoProvisie_Jr=0; "0";
VW_Dim_Relatie[SoortRelatie] = "00010" &&  _IncassoProvisie_Jr < 100; "PB";
"no_status"
)

DavePBI

En respuesta a az38

Hola az38,

Muchas gracias por eso. Realmente útil, ya no proporciona errores y devuelve el valor.

Parece que casi estoy allí, sin embargo, cuando reviso la etiqueta (como PB, etc.). Parece que no siempre es correcto. A veces debería devolver una PZ pero luego da una etiqueta PG…

Tal vez esto se deba al hecho de que usé SUM en la línea lógica. Lo hice porque hay en _Incassoprovisie_Jr varias filas con valor dentro de una sola relación, por eso tomé SUM. Pero tal vez ese es el problema y debería estar usando algo más en su lugar.

Gracias de nuevo eres de gran ayuda….!!!

az38

En respuesta a DavePBI

hola @DavePBI

depende de la lógica de su negocio.

debe comprender qué valor exacto desea usar para definir EK para cada elemento.

tal vez PROMEDIO(), tal vez SUMA(). todo se trata de la tarea

No sé cuál es el propósito de su informe, cuál es la naturaleza de los datos, etc.

Deja un comentario

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