Check your eligibility for this 50% exam voucher offer and join us for free live learning sessions to get prepared for Exam DP-700.
Get StartedDon't miss out! 2025 Microsoft Fabric Community Conference, March 31 - April 2, Las Vegas, Nevada. Use code MSCUST for a $150 discount. Prices go up February 11th. Register now.
Hola a todos
Tengo un desafío para obtener un valor en mi tabla1 de mi tabla2.
Necesito rellenar la columna DURACIÓN con los valores de la tabla2. Lo único es que la tabla 2 tiene valores de "respaldo", en cuyo caso se aplica a todo lo que no coincide de otra manera. La ACCIÓN es mi clave en la que siempre necesito coincidir.
Entonces, por ejemplo, el ID de la Tabla 1 3 debería tener una duración de 2:00 (coincidencia de acción y tipo, pero la región no coincide, por lo que recurre a la Tabla 2 ID 2)
Tabla1 ID 4 debe tener una duración 1:50 (la acción, el tipo y la región coinciden)
Tabla1
IDENTIFICACIÓN | ACCIÓN | TIPO | REGIÓN | DURACIÓN |
1 | RECOGIDA | A | Oeste | |
2 | ENTREGA | B | Este | |
3 | ENTREGA | B | ||
4 | RECOGIDA | A | Oeste | |
5 | RECOGIDA | A |
Cuadro2
IDENTIFICACIÓN | ACCIÓN | TIPO | REGIÓN | DURACIÓN |
1 | RECOGIDA | 1:00 | ||
2 | ENTREGA | 2:00 | ||
3 | RECOGIDA | A | Oeste | 1:50 |
4 | RECOGIDA | A | Este | 3:50 |
5 | ENTREGA | B | Oeste | 4:00 |
¿Cómo debo abordar esto? ¿Se puede hacer esto con un LOOKUPVALUE?
¡Gracias!
Solved! Go to Solution.
Hola, @Noeleke,
algo como esto debería funcionar:
CustomDuration =
var currentID = 'Table 1'[ID]
var currentAction = 'Table 1'[ACTION]
var currentType = 'Table 1'[TYPE]
var currentRegion = 'Table 1'[REGION]
var _fullMatch = maxx(FILTER('Table 2', 'Table 2'[ACTION] = currentAction && 'Table 2'[TYPE] = currentType && 'Table 2'[REGION] = currentRegion),'Table 2'[DURATION])
var _fullMatchCheck = IF(ISBLANK(_fullMatch),MAXX(FILTER('Table 2', 'Table 2'[ACTION] = currentAction && ISBLANK('Table 2'[TYPE]) && ISBLANK('Table 2'[REGION])) ,'Table 2'[DURATION]), _fullMatch)
return _fullMatchCheck
En la Tabla 1
Hola, @Noeleke,
algo como esto debería funcionar:
CustomDuration =
var currentID = 'Table 1'[ID]
var currentAction = 'Table 1'[ACTION]
var currentType = 'Table 1'[TYPE]
var currentRegion = 'Table 1'[REGION]
var _fullMatch = maxx(FILTER('Table 2', 'Table 2'[ACTION] = currentAction && 'Table 2'[TYPE] = currentType && 'Table 2'[REGION] = currentRegion),'Table 2'[DURATION])
var _fullMatchCheck = IF(ISBLANK(_fullMatch),MAXX(FILTER('Table 2', 'Table 2'[ACTION] = currentAction && ISBLANK('Table 2'[TYPE]) && ISBLANK('Table 2'[REGION])) ,'Table 2'[DURATION]), _fullMatch)
return _fullMatchCheck
En la Tabla 1
¡Eres el mejor, gracias! Esto funciona perfectamente. Sin embargo, dejé de lado la identificación, que no tiene por qué coincidir.
Hay @Noeleke ,
Cree la columna siguiente en ambas tablas:
conct = [ID]&" "&[ACTION]&" "&[TYPE]&" "&[REGION]
Ahora cree una columna en la tabla 1 como la siguiente:
Column = LOOKUPVALUE(Tab2[DURATION],Tab2[conct],Tab1[conct])
Gracias
Samarth
Esta fue también la primera idea que me vino a la cabeza, pero no tiene en cuenta el respaldo.
Por ejemplo, table1 ID 3 (sin ID en el conct) hace "DELIVERYB", pero no habrá coincidencia de Table2 porque no hay ninguna fila que coincida con DELIVERY y B (y no hay región).