Automatizar la concatenación de tablas de datos según el nombreHola,
Quiero concatenar tablas de datos según su nombre.
Por ejemplo, tengo 6 tablas de datos y sus nombres serán algo así como M1a M1b M2a M2b M3a M3b. Entonces quiero unir todos los dispositivos M1, etc. Sin embargo, la parte M1 variará según el nombre, por lo que necesito el script para poder obtener el nombre y luego comparar parte del nombre.
Cualquier ayuda para empezar es muy apreciada.
Automatización y secuencias de comandosOrganización de contenidosRe: Automatizar la concatenación de tablas de datos según el nombre¿Ya están abiertas las mesas? Si no, ¿están en la misma carpeta y hay otros archivos en la carpeta?
<< Obtener nombre se puede utilizar para obtener el nombre de la tabla de datos y Obtener lista de tabla de datos() una lista de tablas de datos abiertos. Para comparar nombres de tablas de datos, hay muchas opciones y cuál usar depende de los nombres de las tablas de datos (Regex es una opción).
Re: Automatizar la concatenación de tablas de datos según el nombreAquí tienes un guión que debería ayudarte a empezar a elaborar tu guión final.Crea algunas tablas de muestra para usar en el ejemplo, luego las busca y hace coincidir los primeros 2 caracteres del nombre y finalmente los concatena.
Names Default To Here( 1 );
// create sample data tables
For( i = 1, i <= 6, i++,
New Table( "M" || Char( Mod( i, 3 ) + 1 ) || Char( i ), New Column( "D" ) );
Data Table( "M" || Char( Mod( i, 3 ) + 1 ) || Char( i ) ) << add rows( 1 );
Column( Data Table( "M" || Char( Mod( i, 3 ) + 1 ) || Char( i ) ), 1 )[1] = i;
);
// Find all data tables that match Mx
concatTableList = {};
shortNameList = {};
For( i = 1, i <= N Table(), i++,
If( Starts With( Data Table( i ) << get name, "M" ),
Insert Into( concatTableList, Data Table( i ) << get name );
Insert Into( shortNameList, Substr( Data Table( i ) << get name, 1, 2 ) );
)
);
// Find the unique key values
theKeys = Associative Array( shortNameList ) << get keys;
// Create the concatenated tables
For Each( {key}, theKeys,
catList = {};
For Each( {tableName}, concatTableList,
If( Starts With( tableName, key ),
Insert Into( catList, tableName )
)
);
If( N Items( catList ) > 1,
dt = New Table( key );
For Each( {cat}, catList, dt << concatenate( Data Table( cat ), append to first table ) );
);
);Re: Automatizar la concatenación de tablas de datos según el nombreTambién podría considerar utilizar la importación de archivos múltiples. ¿Combine todas las tablas en una sola tabla y luego sepárelas en subconjuntos usando la columna de origen (cree una nueva columna basada en la columna de origen para los grupos que desea tener) o ejecute MFI varias veces usando comodines * (coincida con cero o más caracteres)? (coincide exactamente con un carácter) y ; (separe diferentes patrones de nombres de archivos) para obtener todo un solo grupo con una ejecución de MFI

Re: Automatizar la concatenación de tablas de datos según el nombreNo creo que esto pueda funcionar ya que todos provienen del mismo libro de Excel. Abro este libro y cada hoja se convierte en una nueva tabla de datos. ¿Hay alguna manera de que esto funcione?
Re: Automatizar la concatenación de tablas de datos según el nombreSi se trata de un solo archivo de Excel, puede utilizar el Asistente de importación de Excel.

Habilite "Concatenar hojas de trabajo e intentar hacer coincidir columnas" y "Crear columna con el nombre de la hoja de trabajo al concatenar". Una vez que tenga datos en la tabla JMP, cree una columna de agrupación y cree subconjuntos según sea necesario.
Re: Automatizar la concatenación de tablas de datos según el nombreGracias