Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Don'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.

Reply
Syndicate_Admin
Administrator
Administrator

LOOKUPVALUE de lookuptable con nulls

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ÓNACCIÓNTIPOREGIÓNDURACIÓN
1RECOGIDAAOeste
2ENTREGABEste
3ENTREGAB
4RECOGIDAAOeste
5RECOGIDAA

Cuadro2

IDENTIFICACIÓNACCIÓNTIPOREGIÓNDURACIÓN
1RECOGIDA 1:00
2ENTREGA 2:00
3RECOGIDAAOeste1:50
4RECOGIDAAEste3:50
5ENTREGABOeste4:00

¿Cómo debo abordar esto? ¿Se puede hacer esto con un LOOKUPVALUE?

¡Gracias!

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

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

vojtechsima_0-1646226650697.png

View solution in original post

5 REPLIES 5
Syndicate_Admin
Administrator
Administrator

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

vojtechsima_0-1646226650697.png

¡Eres el mejor, gracias! Esto funciona perfectamente. Sin embargo, dejé de lado la identificación, que no tiene por qué coincidir.

@Noeleke
Gracias, si pudieras por favor Kudo mi respuesta si fue útil.

Syndicate_Admin
Administrator
Administrator

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).

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

December 2024

A Year in Review - December 2024

Find out what content was popular in the Fabric community during 2024.

Top Solution Authors
Top Kudoed Authors