¿Hay alguna manera de que pueda agregar 1 criterio más en esta expresión DAX?

Un usuario Pregunto ✅

Anónimo

Tengo la siguiente expresión DAX:

Others = 
VAR mymodel =
    VALUES ( 'Compare Data'[Model] )
RETURN
    CONCATENATEX (
        EXCEPT (
            CALCULATETABLE (
                VALUES ( 'Full Data'[Vendor Name] ),
                'Full Data'[Engine Model] IN mymodel
            ),
            VALUES ( 'Compare Data'[Name] )
        ),
        [Vendor Name],
        ", "
    )

No tengo ningún conocimiento de programación, pero soy consciente de que esta medida de Otros se escribió para respuesta solo a la segmentación «Modelo».

Hay alguna manera de hacer esta medida respuesta tanto a los ‘Datos Completos'[Engine Model] & ‘Datos completos'[Material Group] con el resto del código siendo el mismo?

¡Muchas gracias!

Alba

En respuesta a Anónimo

@Anónimo

Cometí un error y actualicé la versión anterior que arrojaba el error en lugar de la última. Prueba esto:

Others = 
VAR mymodel =
    VALUES ( 'Compare Data'[Model] )
VAR mygroup = VALUES ( 'Compare Data'[Group] )
RETURN CONCATENATEX ( EXCEPT ( CALCULATETABLE ( VALUES ( 'Full Data'[Vendor Name] ), FILTER('Full Data', 'Full Data'[Engine Model] IN mymodel && 'Full Data'[Material Group] IN mygroup )), VALUES ( 'Compare Data'[Name] ) ), [Vendor Name], ", " )

Sin embargo, estoy confundido con la historia de la cortadora. Tendría más sentido si lo que selecciona en la segmentación es ‘Comparar datos'[Name] en lugar de ‘Comparar datos'[Engine Moldel] o ‘Comparar datos'[Group] pero tal vez me estoy perdiendo algo. ¿Lo que muestra de la tabla ‘Comparar datos’ es la tabla completa o solo un fragmento?

Alba

hola @anonimo

Aunque no está del todo claro lo que necesitas, prueba esto. Mira el bit en rojo. Supongo que necesitas actualizar eso con la columna correcta.

Others = 
VAR mymodel =
    VALUES ( 'Compare Data'[Model] )
VAR mygroup = VALUES ( 'Compare Data'[Group] )
RETURN CONCATENATEX ( EXCEPT ( CALCULATETABLE ( VALUES ( 'Full Data'[Vendor Name] ), 'Full Data'[Engine Model] IN mymodel && 'Full Data'[Engine Model] IN mygroup ), VALUES ( 'Compare Data'[Name] ) ), [Vendor Name], ", " )

Anónimo

En respuesta a Alba

Hola @AlB, ¡gracias por tu ayuda!

Probé el tuyo con mis datos reales, me salió este mensaje con la medida: «La expresión contiene varias columnas, pero solo se puede usar una única columna en una expresión Verdadero/Falso que se usa como una expresión de filtro de tabla«.

¿Algunas ideas?

Alba

En respuesta a Anónimo

@Anónimo

Pruebe esto para eliminar ese mensaje de error. Pero todavía tenemos el problema con el bit en rojo. De la información proporcionada, no estoy seguro de lo que necesita allí.

Others = 
VAR mymodel =
    VALUES ( 'Compare Data'[Model] )
VAR mygroup = VALUES ( 'Compare Data'[Group] )
RETURN CONCATENATEX ( EXCEPT ( CALCULATETABLE ( VALUES ( 'Full Data'[Vendor Name] ), FILTER('Full Data', 'Full Data'[Engine Model] IN mymodel && 'Full Data'[Engine Model] IN mygroup )), VALUES ( 'Compare Data'[Name] ) ), [Vendor Name], ", " )

Anónimo

En respuesta a Alba

Hola @AlB,

Al igual que en la publicación original, sé que el código crea una medida que responde a la ‘Datos completos'[Engine Model] . Necesito que responda a ambos ‘Datos completos'[Engine Model] & ‘Datos completos'[Material Group].

Probé el que modificaste, aunque me dio espacios en blanco.

No sé si ayuda, pero aquí están mis datos:

1. «Comparar Datos» tabla:

Nombre Modelo Numero de Material Grupo Costo
A W5 1005-01 CEE 100
A W5 1005-02 CEE 150
A W3 1005-03 DIVISOR 105
A W3 1005-04 DIVISOR 3000
A W5 1005-05 CEE 1215

2. «Datos completos» tabla

Nombre del vendedor Modelo de motor Número material Grupo de materiales coste de la reparación
A W5 1005-01 CEE 80
B W5 1005-02 CEE 85
C W3 1005-03 DIVISOR 135
D W3 1005-04 DIVISOR 3005
mi W5 1005-05 CEE 1115
F W2 1005-08 CEE 250
A W5 1005-09 CEE 350
A W5 1005-03 CEE 135
A W5 1005-25 DIVISOR 125
B W3 1005-2 DIVISOR 125.5
B W15 1005-3 CEE 135
R W5 1005-2 CEE 450

¡Graciaaas!

Alba

En respuesta a Anónimo

@Anónimo

Prueba esto entonces, donde hemos cambiado el bit en azul

Others = 
VAR mymodel =
    VALUES ( 'Compare Data'[Model] )
VAR mygroup = VALUES ( 'Compare Data'[Group] )
RETURN CONCATENATEX ( EXCEPT ( CALCULATETABLE ( VALUES ( 'Full Data'[Vendor Name] ), 'Full Data'[Engine Model] IN mymodel && 'Full Data'[Material Group] IN mygroup ), VALUES ( 'Compare Data'[Name] ) ), [Vendor Name], ", " )

Anónimo

En respuesta a Alba

Hola @AlB. Lo probé en primer lugar cuando dijiste que cambiara el que estaba en rojo. Devuelve el mismo mensaje que hice antes.

La expresión contiene varias columnas, pero solo se puede usar una única columna en una expresión Verdadero/Falso que se usa como una expresión de filtro de tabla.

Básicamente, mi objetivo para esta medida es encontrar proveedores alternativos a A (A de la tabla «Comparar datos») que sean capaces de reparar ciertos modelos o compartir lo mismo grupos de materiales con A. Por eso dije que quería que la medida respondiera al ‘Full Data'[Engine Model] & los ‘Datos Completos'[Material Group]

Con la expresión DAX en mi publicación original, no pude hacer que la medida funcionara cuando se realizaron selecciones en ambas segmentaciones. Los resultados siempre se basaron en la segmentación del modelo de motor, pero no en ambos, aunque se eligieron ambas selecciones de segmentación.

Por favor, dígame si encuentra algo que no esté claro. ¡Gracias por su hekp hasta ahora!

Alba

En respuesta a Anónimo

@Anónimo

Cometí un error y actualicé la versión anterior que arrojaba el error en lugar de la última. Prueba esto:

Others = 
VAR mymodel =
    VALUES ( 'Compare Data'[Model] )
VAR mygroup = VALUES ( 'Compare Data'[Group] )
RETURN CONCATENATEX ( EXCEPT ( CALCULATETABLE ( VALUES ( 'Full Data'[Vendor Name] ), FILTER('Full Data', 'Full Data'[Engine Model] IN mymodel && 'Full Data'[Material Group] IN mygroup )), VALUES ( 'Compare Data'[Name] ) ), [Vendor Name], ", " )

Sin embargo, estoy confundido con la historia de la cortadora. Tendría más sentido si lo que selecciona en la segmentación es ‘Comparar datos'[Name] en lugar de ‘Comparar datos'[Engine Moldel] o ‘Comparar datos'[Group] pero tal vez me estoy perdiendo algo. ¿Lo que muestra de la tabla ‘Comparar datos’ es la tabla completa o solo un fragmento?

Alba

En respuesta a Alba

@Anónimo

Además, todavía no entiendo muy bien cuándo quieres mostrar un proveedor, ya que hablas de modelo O material y luego modelo Y material. Sería útil si proporcionara un par de ejemplos sobre los datos de muestra para mostrar cuándo el proveedor sería válido y cuándo no. Sospecho que, en base a esa aclaración, tendremos que actualizar la condición en la sentencia FILTER( ):

FILTER('Full Data',
'Full Data'[Engine Model] IN mymodel && 'Full Data'[Material Group] IN mygroup )

Deja un comentario

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