Forum Discussion
Buscarv - PowerBI - Rango de texto o lista
¡Hola!
Estoy tratando de obtener la matrícula de varios vehículos, en función de cómo terminan sus matrículas.
Tabla de búsqueda original:
| Año | Ene | Feb | Estropear | Apr | Mayo | Jun | Jul | Hace | Sep | Oct | Nov | Dic |
| 2022 | ||||||||||||
| 2021 | amo mi vida | LMX | LNN | LPD | LPW | LRP | LSF | LSP | LTD | LTP | LVD | LVV |
| 2020 | LFH | LFY | LGG | LGH | LGP | LHG | LJD | LJR | LKF | LKV | LLJ | LMC |
| 2019 | KTJ | KVB | KVX | KWT | KXR | KYN | KZK | KZY | LBN | LCG | LCY | LDR |
| 2018 | KHG | KHY | KJV | KKR | KLN | KMM | KNK | KPD | KPS | KRJ | KRZ | KSS |
| 2017 | JWN | JXF | JYB | JYT | JZP | KBM (en inglés) | KCH | KCT | KDH | KFC | KFW (en inglés) | KGN |
(No copié todo el asunto, porque no es necesario, eso se remonta al año 2000, porque no es necesario)
Al despivotar la tabla para trabajar con ella, obtenemos algo como esto (simplificado para el año 2021):
tbLookupPlateYear
| Año | Mes | 3Letletes | MesNúmero |
| 2021 | Dic | LVV | 12 |
| 2021 | Nov | LVD | 11 |
| 2021 | Oct | LTP | 10 |
| 2021 | Sep | LTD | 09 |
| 2021 | Hace | LSP | 08 |
| 2021 | Jul | LSF | 07 |
| 2021 | Jun | LRP | 06 |
| 2021 | Mayo | LPW | 05 |
| 2021 | Abr | LPD | 04 |
| 2021 | Estropear | LNN | 03 |
| 2021 | Feb | LMX | 02 |
| 2021 | Ene | amo mi vida | 01 |
Ahora, obtengamos la fecha de la placa:
Ejemplo de placa A: E 1234 LSF
la fecha sería agosto de 2021
Placa de ejemplo B: E 4321 LMM
La fecha sería entre febrero y marzo de 2021, por lo que indicamos la más baja, febrero de 2021
¿Cómo podemos hacer esto en PowerBI? En Excel usarías vlookup, sin coincidencia exacta, y funcionaría bien. No en PowerBI, que solo genera coincidencias exactas.
¿Alguna idea?
Hay @jaimemagana ,
Puede convertir el texto a UniCode y luego compararlos.
1. Primero agregue una nueva columna a la tabla.NumberCode = UNICODE ( 'Table'[3Letters] ) * 10000 + UNICODE ( MID ( 'Table'[3Letters], 2, 1 ) ) * 100 + UNICODE ( RIGHT ( 'Table'[3Letters] ) )2. Luego cree la columna en la tabla de placas.
Lookup = VAR Fir = UNICODE ( [3Letters] ) VAR Sec = UNICODE ( MID ( [3Letters], 2, 1 ) ) VAR Thir = UNICODE ( RIGHT ( [3Letters] ) ) VAR PlateUnicode = Fir * 10000 + Sec * 100 + Thir VAR Tab = FILTER ( 'Table', 'Table'[NumberCode] = MAXX ( FILTER ( 'Table', [NumberCode] <= PlateUnicode ), [NumberCode] ) ) RETURN MAXX ( Tab, [Attribute] ) & " " & MAXX ( tab, [Year] )Si el problema aún no se resuelve, proporcione información detallada sobre el error o el resultado esperado que espera. Hágamelo saber de inmediato, esperando su respuesta.
Saludos
Winniz
Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.
2 Replies
- Syndicate_AdminAdministrator
@jaimemagana, HOLA, ¿compartirías tu solución vlookup de Excel para una mayor claridad?
Saludos
Juan Basha Mattipati,
https://www.linkedin.com/in/john-basha-mattipati-06812980/ - Syndicate_AdminAdministrator
Hay @jaimemagana ,
Puede convertir el texto a UniCode y luego compararlos.
1. Primero agregue una nueva columna a la tabla.NumberCode = UNICODE ( 'Table'[3Letters] ) * 10000 + UNICODE ( MID ( 'Table'[3Letters], 2, 1 ) ) * 100 + UNICODE ( RIGHT ( 'Table'[3Letters] ) )2. Luego cree la columna en la tabla de placas.
Lookup = VAR Fir = UNICODE ( [3Letters] ) VAR Sec = UNICODE ( MID ( [3Letters], 2, 1 ) ) VAR Thir = UNICODE ( RIGHT ( [3Letters] ) ) VAR PlateUnicode = Fir * 10000 + Sec * 100 + Thir VAR Tab = FILTER ( 'Table', 'Table'[NumberCode] = MAXX ( FILTER ( 'Table', [NumberCode] <= PlateUnicode ), [NumberCode] ) ) RETURN MAXX ( Tab, [Attribute] ) & " " & MAXX ( tab, [Year] )Si el problema aún no se resuelve, proporcione información detallada sobre el error o el resultado esperado que espera. Hágamelo saber de inmediato, esperando su respuesta.
Saludos
Winniz
Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.