scign
Yo tengo:
1. una tabla de compras de productos (np = alrededor de 160.000 registros) con varios campos, incluido un campo de descripción de texto, y
2. una lista separada de palabras clave (nk = alrededor de 90 filas) y palabras clave parciales como «fusionar» y «calibrar» (que cubre «calibrar», «calibrar», «calibrar», etc.). La lista de palabras clave se puede agregar a.
Necesito:
– una tabla de compras donde el campo de descripción contiene al menos una de las palabras clave de la lista.
¿Hay una forma fácil de hacer esto?
Mi pensamiento era hacer lo siguiente:
1. combinación externa completa de las dos tablas para obtener una fila para cada palabra clave para cada compra, de modo que tenga (np * nk) filas,
2. agregue una nueva columna con una búsqueda de texto de la palabra clave en la descripción
3. Filtre donde la búsqueda de texto arroje un verdadero
4. eliminar registros de compra duplicados
Sin embargo, me ha quedado perplejo cómo hacer una combinación externa completa sin una columna coincidente …
De acuerdo, mientras escribía la última línea, se me ocurrió una idea. Estaba atascado en cómo unir las dos tablas sin una columna coincidente, así que simplemente creé una columna en cada tabla con «1» como valor para todas las filas y uní esas columnas. Eso me dio la combinación externa completa y continué desde el n. ° 2 anterior y obtuve mi lista filtrada.
Todavía tengo curiosidad por saber si hay una manera más fácil que esa, ya que parece un enfoque bastante mazo de la nuez que tengo.
¿Pensamientos?
drewlewis15
Este artículo podría ser una solución a su problema:
https: //powerpivotpro.com/2014/01/containsx-finding-if-a-value-in-table-1-has-a-matching-value-in-ta …
v-shex-msft
Hola @scign,
Puede intentar usar la siguiente fórmula para obtener la tabla coincidente. (Encontré algunas ideas para modificar mi fórmula en el enlace de @ drewlewis15)
Matched Table = CALCULATETABLE(Records,FILTER(ADDCOLUMNS(Records,"Contains",FIRSTNONBLANK(FILTER(VALUES(Keywords[Keyword]), SEARCH(Keywords[Keyword],[Description],1,0)),[Keyword])),[Contains]<>BLANK()))
Saludos,
Xiaoxin Sheng
v-shex-msft
Hola @scign,
Puede intentar usar la siguiente fórmula para obtener la tabla coincidente. (Encontré algunas ideas para modificar mi fórmula en el enlace de @ drewlewis15)
Matched Table = CALCULATETABLE(Records,FILTER(ADDCOLUMNS(Records,"Contains",FIRSTNONBLANK(FILTER(VALUES(Keywords[Keyword]), SEARCH(Keywords[Keyword],[Description],1,0)),[Keyword])),[Contains]<>BLANK()))
Saludos,
Xiaoxin Sheng
Ashish_Mathur
Hola,
Comparta un conjunto de datos y muestre el resultado esperado.
drewlewis15
Este artículo podría ser una solución a su problema:
https: //powerpivotpro.com/2014/01/containsx-finding-if-a-value-in-table-1-has-a-matching-value-in-ta …
MarcelBeug
En respuesta a drewlewis15
Si desea unir 2 tablas por completo sin una columna de clave coincidente, puede agregar una columna personalizada con la otra tabla, como:
= Table.AddColumn(Table1,"Table2", each Table2)
Una solución alternativa para sus requisitos sería dividir sus descripciones en cualquiera de las palabras clave y luego tomar los resultados que tienen varios elementos, como:
= Table.SelectRows(Source, each List.Count(Splitter.SplitTextByAnyDelimiter(Keywords)([Description])) > 1)