Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more
Hola
Tengo dos tablas con campos numéricos de texto. Uno es el número completo y el otro es un desplazamiento del primero, lo que significa que podría ser el texto del 3 al 13 o del 2 al 12. Una combinación aproximada no devuelve la información correcta. Por lo tanto, me gustaría que la tabla A devolviera la coincidencia parcial en la tabla B o que la tabla B devolviera la coincidencia parcial en A. El número de la tabla B es un desplazamiento ligeramente diferente en cada fila. De nuevo, se trata de números almacenados como textos. ¿Alguna forma de hacer este partido?
Cuadro A
| Número de boleto | |||||
| 01470614238450 | |||||
| 01467031551686 | |||||
| 01470655645513 | |||||
| 01470680045763 | |||||
Cuadro B
|
Hola
Gracias por las soluciones @ronrsnfld y @lbendlin proporcionadas, y quiero ofrecer más información para que el usuario la consulte,
Hola @johnlhaase , puede consultar la siguiente solución.
Cuadro A
Cuadro B
A continuación, en la tabla a, cree una columna personalizada
let a=[TicketNumber]
in Text.Combine(List.Select(#"Table B"[Column1],each Text.Contains(a,_)),",")
Salida
Y puede consultar los archivos adjuntos.
¡Saludos!
Yolo Zhu
Si esta publicación ayuda, considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Uso de la función List.FindText para localizar el número completo correcto para un número parcial
TableA
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("TcrBCcAwDAPAXfLuQ64l2buE7L9GTaHQ73F7LwQLDt7ZFNa5XnIhQwq3P5olmYP5owao8tB5AA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [TicketNumber = _t])
in
Source
TablaB
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("VcuxDQAgCETRXagtQDjEWQj7r6HRWFi+f7lMGuxiXcNA1ZJYBRAPP9oj4LaLPgezQcbP+52dqhY=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [TicketNumber = _t]),
//Add the full ticket number if a match
#"Added Custom" = Table.AddColumn(Source, "TicketNumberA", each List.FindText(TableA[TicketNumber],[TicketNumber]){0}?, type text),
//add the non-matching TableA numbers
#"Add from TableA" = Table.Combine({#"Added Custom",
Table.SelectRows(Table.RenameColumns(TableA,{"TicketNumber", "TicketNumberA"}),
each not List.Contains(#"Added Custom"[TicketNumberA],[TicketNumberA]))
})
in
#"Add from TableA"
Resultado
¿Funciona una función contain en esta aplicación?
sí, la solución propuesta se basa en Text.Contains.
Cómo usar este código: Crear una nueva consulta en blanco. Haga clic en "Editor avanzado". Reemplace el código de la ventana por el código que se proporciona aquí. Haga clic en "Listo". Una vez que haya examinado el código, reemplace el paso Origen por su propio código fuente.
Cuadro B
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("VcuxDQAgCETRXagtQDjEWQj7r6HRWFi+f7lMGuxiXcNA1ZJYBRAPP9oj4LaLPgezQcbP+52dqhY=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Pattern = _t])
in
Source
Cuadro A
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("TcrBCcAwDAPAXfLuQ64l2buE7L9GTaHQ73F7LwQLDt7ZFNa5XnIhQwq3P5olmYP5owao8tB5AA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [TicketNumber = _t]),
#"Added Custom" = Table.AddColumn(Source, "Match", (k)=> Table.SelectRows(#"Table B",each Text.Contains(k[TicketNumber],[Pattern]))),
#"Expanded Match" = Table.ExpandTableColumn(#"Added Custom", "Match", {"Pattern"}, {"Pattern"})
in
#"Expanded Match"
Hola
Entiendo un poco el código M y no veo dónde se introducen mis datos de aguas en el script. ¿Podrías explicarlo un poco más?
The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!