Reelaboré el guión anterior para cumplir con sus nuevos requisitos.
Names Default To Here( 1 );
dt = Current Data Table();
keep = {};
delete = {};
colNameList = dt << get column names( string );
numericNamesOnly = colNameList;
For( i = N Items( colNameList ), i >= 1, i--,
colNameList[i] = Uppercase( colNameList[i] );
If( Is Missing( Num( colNameList[i] ) ) == 1,
numericNamesOnly[i] = ""
);
);
While( N Items( colNameList ) > 0,
If(
Contains( colNameList[1], Uppercase( "Date début" ) ),
found = Contains( numericNamesOnly, Word( 3, colNameList[1] ) );
If( found > 0,
Insert Into( keep, colNameList[1] );
Insert Into( keep, numericNamesOnly[found] );
Remove From( numericNamesOnly, found, 1 );
Remove From( numericNamesOnly, 1, 1 );
Remove From( colNameList, found, 1 );
Remove From( colNameList, 1, 1 );
,
Insert Into( delete, colNameList[1] );
Remove From( colNameList, 1, 1 );
Remove From( numericNamesOnly, 1, 1 );
);,
Is Missing( Num( colNameList[1] ) ) == 0,
found = Contains( colNameList, Uppercase( "DATE début " ) || colNameList[1] );
If( found > 0,
Insert Into( keep, colNameList[1] );
Insert Into( keep, dateDebutOnly[found] );
Remove From( numericNamesOnly, found, 1 );
Remove From( numericNamesOnly, 1, 1 );
Remove From( colNameList, found, 1 );
Remove From( colNameList, 1, 1 );
,
Insert Into( delete, colNameList[1] );
Remove From( colNameList, 1, 1 );
Remove From( numericNamesOnly, 1, 1 );
);,
Remove From( colNameList, 1, 1 );
Remove From( numericNamesOnly, 1, 1 );
)
);
dt << delete columns(delete);
No es un código bonito, pero muestra la forma directa de hacer el trabajo.
Nota: Tiene un error en su tabla de datos de muestra.Tiene un nombre de columna "Datd debut 952" que debe cambiarse a "Date debut 952"
¡Gracias funciona!
Traté de usar su script pero inicialmente no sabía cómo caracterizar todas las columnas del segundo grupo porque no hay términos similares.
Hola a todos, tengo una tabla de datos similar a esta:
La base de datos consta de 2 grupos:
- Las fechas ("fecha de inicio...")
- Números asociados a operaciones
Mi objetivo es eliminar las columnas que no están en la intersección de los dos grupos de columnas.
Es decir aquí, me gustaría eliminar automáticamente con un script las columnas: "Fecha de inicio 952", "9950"
Gracias por su ayuda !
Gracias por salvarme el día también. 