Forum Discussion
lookupvalue
Hola a tod@s,
A ver si alguien me puede dar una solución.
Tengo un tabla con estos campos:
| Nombre | Producto | ID |
| ACC001 | Capso 2021 | 3 |
| ACC002 | Capso 2021 | 3 |
| ACC003 | Capso 2020 | 2 |
| ACC004 | Capso 2020 | 2 |
| ACC004 | Capso 2019 | 1 |
Como se observa el nombre "ACC004" se repite porque tiene 2 productos "Capso 2020" y "Capso 2019".
Tengo otra tabla que es un listado único de nombres creado con un "DISTINC(SELECTCOLUMNS)".
A esta última tabla me quiero llevar, relacionando con el nombre, el producto. En caso que haya dos nombre con productos distintos quiero que me lleve el que tenga el ID más alto. En este caso que me lleve de "ACC04" el producto "Capso 2020".
He probado con lookupvalue y alguna otra variable pero no me trae el campo correcto.
¿alguna idea por favor?
Un saludo y gracias de antemano
jemalosa ,
I suppose your tables are connected via Nombre column:
I've created 'Tabla2' via Tabla2 = DISTINCT(Tabla1[Nombre]).
In case of calculated columns:
CAPSO = VAR currNombre = Tabla2[Nombre] VAR _tC = CALCULATETABLE ( Tabla1, Tabla1[Nombre] = currNombre && CONTAINSSTRING ( Tabla1[Producto], "CAPSO" ) ) VAR maxCID = MAXX ( _tC, Tabla1[ID CAPSO] ) RETURN CALCULATE ( MAX ( Tabla1[Producto] ), FILTER ( _tC, [ID CAPSO] = maxCID ) )PRICCOA = VAR currNombre = Tabla2[Nombre] VAR _tP = CALCULATETABLE ( Tabla1, Tabla1[Nombre] = currNombre && CONTAINSSTRING ( Tabla1[Producto], "PRICCOA" ) ) VAR maxPID = MAXX ( _tP, Tabla1[ID PRICCOA] ) RETURN CALCULATE ( MAX ( Tabla1[Producto] ), FILTER ( _tP, [ID PRICCOA] = maxPID ) )In case of measures:
#CAPSO = VAR currNombre = MAX(Tabla2[Nombre]) VAR _tC = CALCULATETABLE ( Tabla1, Tabla1[Nombre] = currNombre && CONTAINSSTRING ( Tabla1[Producto], "CAPSO" ) ) VAR maxCID = MAXX ( _tC, Tabla1[ID CAPSO] ) RETURN IF ( HASONEVALUE ( Tabla2[Nombre] ), COALESCE ( CALCULATE ( MAX ( Tabla1[Producto] ), FILTER ( _tC, [ID CAPSO] = maxCID ) ), "" ) )#PRICCOA = VAR currNombre = MAX(Tabla2[Nombre]) VAR _tP = CALCULATETABLE ( Tabla1, Tabla1[Nombre] = currNombre && CONTAINSSTRING ( Tabla1[Producto], "PRICCOA" ) ) VAR maxPID = MAXX ( _tP, Tabla1[ID PRICCOA] ) RETURN IF ( HASONEVALUE ( Tabla2[Nombre] ), COALESCE ( CALCULATE ( MAX ( Tabla1[Producto] ), FILTER ( _tP, [ID PRICCOA] = maxPID ) ), "" ) )If this post helps, then please consider Accept it as the solution ✔️to help the other members find it more quickly.
6 Replies
- jemalosaFrequent Visitor
Hola,
Te muestro un ejemplo más realista de la tabla que tengo (tabla1)y de la tabla esperada (tabla2):
Tabla1:
Nombre Producto ID CAPSO ID PRICCOA
AC001 CAPSO 2019 6 0
AC001 CAPSO 2003 3 0
AC001 PRICCOA 2003 0 1
AC002 CAPSO 2003 3 0
AC003 CAPSO 2019 6 0
AC003 PRICCOA 2020 0 11
AC004 CAPSO 2019 6 0
AC005 CAPSO 2019 6 0
AC006 CAPSO 2019 6 0
AC007 CAPSO 2019 6 0
AC008 CAPSO 2020 7 0
AC009 CAPSO 2019 6 0
AC010 CAPSO 2019 6 0
AC010 CAPSO 2017 5 0
AC010 PRICCOA 2019 0 10
AC010 PRICCOA 2009 0 7
AC011 CAPSO 2003 3 0
AC012 CAPSO 2003 3 0
AC013 CAPSO 2003 3 0
AC014 CAPSO 2003 3 0
AC015 CAPSO 2003 3 0
AC016 CAPSO 2003 3 0
AC017 CAPSO 2019 6 0
AC017 CAPSO 2003 3 0
AC019 PRICCOA 2020 0 11
AC019 PRICCOA 2009 0 7
AC021 PRICCOA 2020 0 11
AC023 PRICCOA 2020 0 11
AC023 PRICCOA 2003 0 1
AC024 PRICCOA 2003 0 1
AC025 PRICCOA 2019 0 10
AC026 PRICCOA 2019 0 10
AC027 PRICCOA 2009 0 7
AC027 PRICCOA 2003 0 1
AC028 PRICCOA 2003 0 1
AC032 PRICCOA 2009 0 7
AC032 PRICCOA 2020 0 11
Tabla 2 (esperada):Como verás, en la tabla 2 se muestran el mayor ID por producto
Nombre CAPSO PRICCOA
AC001 CAPSO 2019 PRICCOA 2003
AC002 CAPSO 2003
AC003 CAPSO 2019 PRICCOA 2020
AC004 CAPSO 2019
AC005 CAPSO 2019
AC006 CAPSO 2019
AC007 CAPSO 2019
AC008 CAPSO 2020
AC009 CAPSO 2019
AC010 CAPSO 2019 PRICCOA 2019
AC011 CAPSO 2003
AC012 CAPSO 2003
AC013 CAPSO 2003
AC014 CAPSO 2003
AC015 CAPSO 2003
AC016 CAPSO 2003
AC017 CAPSO 2019 CAPSO 2019
AC019
PRICCOA 2020
AC021
PRICCOA 2020
AC023
PRICCOA 2020
AC024
PRICCOA 2003
AC025
PRICCOA 2019
AC026
PRICCOA 2019
AC027
PRICCOA 2009
AC028
PRICCOA 2003
AC032
PRICCOA 2020
Un saludo y gracias por la ayuda