Cómo desapilar una celda apilada de Excel o analizar texto de formato libre para generar varias filasTodos nos encontramos con alguna versión de esto: una tabla de Excel formateada para lucir bien, sin pensar en su capacidad de análisis.
En la celda de texto de formato libre, se ve así:
m/d: texto [alt+enter]
m/d: texto [alt+enter]
m/d: texto [alt+enter]
m/d: texto [alt+enter]
...
m/d: texto [alt+enter]
Cuando los datos se exportan a JMP, la celda se contrae en: m/d: texto m/d: texto m/d: texto ... m/d: texto.
Quiero analizar esa cadena larga con n elementos en una fila independiente para cada elemento, no en columnas separadas. n es variable. Esto crearía una nueva tabla de datos que copia las demás columnas y añade el elemento analizado. En lugar de texto a columnas, se trata de texto a más filas.
Afortunadamente #/# se usa consistentemente, por lo que pude contarlos y repetirlos n veces.
¿Alguien por ahí ha hecho algo parecido?
Personalización masivaRe: Desapilar una celda de Excel apilada o analizar texto de forma libre para generar múltiples filasHago mucho este tipo de cosas; solo tienes que atravesarlo. Aquí hay un ejemplo donde la Columna 1 tiene múltiples valores, y la Columna 2 es estática.
dt = New Table( "Test", Add Rows( 3 ), Set Cell Height( 83 ),
New Column( "Column 1", Character, "Nominal",
Set Values(
{"5/3: ABCDE
5/4: DEF
5/5: GHI",
"5/6: xyz
5/7: foo
5/8: bar
5/9: Hello
5/10: World",
"4/16: The
4/17: Entire
4/18: Scheme
4/19: Of
4/20: Things
4/21: Is broken"} ),
Set Display Width( 156 )
),
New Column( "Column 2", Character, "Nominal", Set Values( {"A", "B", "C"} ) )
);
dtnew = new table("Text_to_Rows",
new column("Column 1", Character, "Nominal"),
new column("Column 2", Character, "Nominal"),
);
delim = "
";
m = 0;
for (i = 1, i <= nrows(dt), i++,
c1_words = words(dt:column 1[i], delim);
one_c2 = dt:column 2[i];
for (k = 1, k <= nitems(c1_words), k++,
dtnew << add rows(1);
m++;
dtnew:Column 1[m] = c1_words[k];
dtnew:Column 2[m] = one_c2;
);
);
Re: Desapilar una celda de Excel apilada o analizar texto de forma libre para generar múltiples filasPeter:
¡Gracias! Eso hizo el truco. Te debo un trago de tu elección.
Estoy trabajando en los creadores de los datos para ingresar los datos en formato plano ...
Re: Desapilar una celda de Excel apilada o analizar texto de forma libre para generar múltiples filasJa ja suena bien. Espero verte en Discovery 2020.