Hola a todos,
Tengo dos tablas de datos diferentes y necesito buscar y seleccionar si la palabra existe en la otra tabla.
Intenté usar Contiene() pero no funciona. Por favor ayuda
Aquí hay un ejemplo:
dt1
dt2
| perro y gorila |
| ratón, jirafa |
| tiburón, ballena, pingüino |
| avestruz y pájaro |
| león y tigre, vaca |
Resultado (se selecciona el texto en negrita):
dt2
| perro y gorila |
| ratón, jirafa |
| tiburón, ballena, pingüino |
| avestruz y pájaro |
| león y tigre, vaca |
Aquí tienes una forma de hacer lo que estás buscando. Tenga en cuenta que creo que la tabla que muestra los resultados tiene la fila 3 seleccionada incorrectamente.
Names Default To Here( 1 );
// Create the tables
dt1 = New Table( "Lookup", Add Rows( 5 ), New Column( "key", Character, Set Values( {"dog", "cat", "fish", "bird", "cow"} ) ) );
dt2 = New Table( "Base",
Add Rows( 5 ),
New Column( "Target", Character, Set Values( {"dog&gorilla", "mouse, giraffe", "shark, whale, penguin", "ostrich&bird", "lion&tiger,cow"} ) )
);
// Place all key values into a list
KeyList = dt1:key << get values;
// Loop across the keys and search each row of Target for the
// match
For Each( {val}, keyList,
For Each Row(
If( Contains( :Target, val ),
Row State( Row() ) = Selected State( 1 )
)
)
);

Solo una pregunta de seguimiento: ¿puedo usar estas filas seleccionadas para hacer coincidir otras tablas? ¿Como en Actualización?
No entiendo tu pregunta. Sin embargo, puede crear fácilmente un subconjunto de la tabla base que contenga solo las filas seleccionadas y luego puede actualizar otra tabla a partir de esa tabla. Aquí está el JSL para hacer el subconjunto.
dt3 = dt2 << Subset( selected columns( 0 ), selected rows( 1 ) );