Explicación y ejemplo de cómo utilizar la opción de buscar y reemplazar con comodines de Word para separar en una tabla textos y números con decimales contenidos en una cadena de caracteres .
En determinadas profesiones es muy habitual recibir o extraer de datos de archivos generados por terceros en diferentes formatos (TXT, DOC, ODT, XLS, PDF, ODS,…) para incorporarlos a un tratamiento. A los efectos es útil que los datos vengan delimitados para poder disponerlos en una tabla. Sin embargo, con frecuencia, recibimos esta información en ficheros de texto en la que los datos no están delimitados. En consecuencia, al incorporarlos a un tratamiento, por ejemplo a un documento Word o Excel mediante un copi-pega o una importación, no tenemos de un procedimiento para tabularlos o disponerlos en columnas de forma inmediata.
¿Cómo podemos tabularlos sin dedicarle horas?
Indice de contenidos
Buscar y reemplazar con comodines en Word
Hay varias opciones y depende de cómo vengan los datos en el fichero. Una manera de hacerlo es aprovechando las opciones de buscar y reemplazar de Word usando los caracteres comodín.
Para ilustrarlo vamos a utilizar la tabla salarial que se publica en el Anexo I del PDF de la “Resolución de 22 de febrero de 2018, de la Dirección General de Empleo, por la que se registra y publica el XVII Convenio colectivo estatal de empresas de consultoría y estudios de mercado y de la opinión pública“.
En el PDF de la Resolución los datos de la tabla se pueden seleccionar y copiar como texto. Solo nos interesan los datos y, a veces, los PDF no lo ponen fácil. En este caso, al seleccionar los datos y pegarlos en un documento Word nos quedará la información copiada tal cual así.
TotalAI16.342,061.151,5017.493,5616.832,321.186,0518.018,3717.168,971.209,7718.378,7417.512,351.233,9718.746,3217.512,351.233,9718.746,32BI15.442,561.089,2016.531,7615.905,841.121,8817.027,7216.223,961.144,3217.368,2816.548,441.167,2117.715,6516.548,441.167,2117.715,65BII13.723,22968,2414.691,4614.134,92997,2915.132,2114.417,621.017,2415.434,8614.705,971.037,5815.743,5514.705,971.037,5815.743,55CI12.002,20844,4812.846,6812.362,27869,8113.232,0812.609,52887,2113.496,7312.861,71904,9513.766,6612.861,71904,9513.766,66CII11.389,04810,9612.200,0011.730,71835,2912.566,0011.965,32852,0012.817,3212.204,63869,0413.073,6712.204,63869,0413.073,67CIII10.959,62780,3811.740,0011.288,41803,7912.092,2011.514,18819,8712.334,0511.744,46836,2712.580,7311.744,46836,2712.580,73DI10.965,64768,0411.733,6811.294,61791,0812.085,6911.520,50806,9012.327,4011.750,91823,0412.573,9511.750,91823,0412.573,95DII10.771,11728,8911.500,0011.094,24750,7611.845,0011.316,12765,7812.081,9011.542,44781,1012.323,5411.542,44781,1012.323,54DIII10.507,70711,0611.218,7610.822,93732,3911.555,3211.039,39747,0411.786,4311.260,18761,9812.022,1611.260,18761,9812.022,16EI9.691,36678,7210.370,089.982,10699,0810.681,1810.181,74713,0610.894,8010.385,37727,3211.112,6910.385,37727,3211.112,69EII9.618,56673,6810.292,249.907,12693,8910.601,0110.105,26707,7710.813,0310.307,37721,9311.029,3010.307,37721,9311.029,30EIII9.488,22664,5810.152,809.772,87684,5210.457,399.968,33698,2110.666,5410.167,70712,1710.879,8710.167,70712,1710.879,87AI23.362,501.637,5025.000,0024.063,381.686,6325.750,0124.544,651.720,3626.265,0125.035,541.754,7726.790,3125.035,541.754,7726.790,31BI22.673,751.576,2524.250,0023.353,961.623,5424.977,5023.821,041.656,0125.477,0524.297,461.689,1325.986,5924.297,461.689,1325.986,59BII21.969,501.536,2223.505,7222.628,591.582,3124.210,9023.081,161.613,9624.695,1223.542,781.646,2425.189,0223.542,781.646,2425.189,02CI21.555,661.438,0822.993,7422.202,331.481,2223.683,5522.646,381.510,8424.157,2223.099,311.541,0624.640,3723.099,311.541,0624.640,37CII20.091,751.408,2521.500,0020.694,501.450,5022.145,0021.108,391.479,5122.587,9021.530,561.509,1023.039,6621.530,561.509,1023.039,66CIII18.222,751.277,2519.500,0018.769,431.315,5720.085,0019.144,821.341,8820.486,7019.527,721.368,7220.896,4419.527,721.368,7220.896,44DI15.442,561.089,2016.531,7615.905,841.121,8817.027,7216.223,961.144,3217.368,2816.548,441.167,2117.715,6516.548,441.167,2117.715,65DII14.295,54998,4815.294,0214.724,411.028,4315.752,8415.018,901.049,0016.067,9015.319,281.069,9816.389,2615.319,281.069,9816.389,26DIII14.013,90986,1015.000,0014.434,321.015,6815.450,0014.723,011.035,9915.759,0015.017,471.056,7116.074,1815.017,471.056,7116.074,18EI13.827,66973,0014.800,6614.242,491.002,1915.244,6814.527,341.022,2315.549,5714.817,891.042,6715.860,5614.817,891.042,6715.860,56EII11.773,15828,3912.601,5412.126,34853,2412.979,5812.368,87870,3013.239,1712.616,26887,7113.503,97EIII9.644,85675,3010.320,1510.105,39707,8810.813,2710.942,35767,8211.710,1711.779,29827,7812.607,07Salarios a partir del 31-12-2019Nuevo Sistema de Clasificación ProfesionalSalarios Nuevo Convenio antes de incrementosSalarios a partir del 01-10-2017Salarios a partir del 01-04-2018Salarios a partir del 01-01-2019AREA 1: Soporte Técnico y/o
administrativo AREA 2: Gestión de medios y procesos AREA 4: Estudios de MercadoAREA 3: Consultoría, Desarrollo y sistemas12.616,26887,7113.503,97
El texto copiado que está marcado en azul queda “fuera de su sitio”. Como nos centramos en los datos y estos textos se relacionan con los encabezados de las columnas, podemos optar por eliminarlos o dejarlos. Para facilitar las explicaciones, optaré por eliminarlos.
a) Separar el texto en filas usando Buscar y reemplazar con comodines
En cualquier caso prestemos atención a que el texto que hemos pegado en nuestro ejemplo nos ha quedado todo junto en una única línea. Para separarlo en columnas podríamos, por ejemplo, ir “a mano” buscando las “comas” de los decimales y, cada dos números a la derecha de la “coma”, insertar una tabulación. Esto es laborioso, lleva tiempo y no está exento de errores así vamos a hacerlo en Microsoft Word con un buscar y reemplazar con comodines.
Para ello, en la tabla original, vemos que todas las filas empiezan por uno de los caracteres {A,B,C,D,E} seguido de un número romano {I,II,III}. Pues simplemente hay que buscar el carácter junto con el número romano y reemplazarlo por una marca de párrafo, el mismo carácter, una tabulación, el mismo número romano y otra tabulación. Haciéndolo de este modo tenemos
- La marca de párrafo, nos dará el salto de línea.
- El mismo carácter, es para no perder el dato {A,B,C,D,E}.
- La tabulación, nos delimita la primera columna.
- El mismo número romano, es para no perder el dato {I,II,III}.
- La segunda tabulación, delimita la segunda columna.
Ahora que lo tenemos planteado vamos a la opción buscar y reemplazar de Word. Esta es la solución:
1. El patrón de búsqueda con comodines
El patrón de búsqueda con comodines que metemos en Buscar es: ([ABCDE])(I{1;}), donde usamos los siguientes comodines
Los paréntesis se usan para agrupar y ordenar los patrones de búsqueda. En este caso tenemos 2 grupos el primero es ([ABCDE]) y el segundo es (I{1;})
Los corchetes se utilizan para buscar los caracteres que se incluyan entre éstos. Los usamos en el primer grupo para buscar los caracteres A,B,C,D,E. Ojo con las letras mayúsculas y minúsculas que no son los mismos caracteres.
Las llaves, con los parámetros n y m, se usan colocados a continuación de una cadena para buscar dicha cadena con un número dado de repeticiones.Para aclararlo un poco: en la expresión “La muchacha estaba bailando el chachachá con Charo”, la cadena “cha“ con 1 repetición se encuentra 2 veces en la palabra “muchacha“ y 2 veces en la palabra “chachachá”; y con 2 repeticiones se encuentra 1 vez en la “muchacha” y 1 vez en la palabra “chachachá”. No se encontrará con 3 repeticiones en la palabra “chachachá” porque está acentuada ni se encontrará con 1 repetición en la palabra “Charo” por la mayúscula.Los parámetros son números enteros no puede ser el cero y caben las siguientes opciones
{n} busca la cadena que se repita n veces.
{n;} busca la cadena que se repita al menos n veces.
{n;m} busca la cadena que se repita entre n y m veces
En nuestro caso utilizamos en el segundo grupo para buscar los números romanos I,II,III. Como todos tienen el carácter I bastará buscarlo con la condición de que se repita al menos 1 vez.
2. El patrón de sustitución
El patrón de sustitución que metemos en Reemplazar es ^p\1^t\2^t donde:
Elemento de página que se utiliza para las marcas de párrafos. En este caso lo usamos para insertar 1 marca de párrafo, para obtener la línea
Identifica el primero grupo de la cadena de búsqueda con comodines ([ABCDE]). Reemplazará con la misma cadena y de este modo no se pierde el dato {A,B,C,D,E}.
Elemento de página que se utiliza para las marcas de tabulación. En este caso lo usamos para insertar 1 tabulación, que delimite la primera columna
Identifica el segundo grupo de la cadena de búsqueda con comodines (I{1;}). Reemplazará con la misma cadena y de este modo no perdemos el dato {I,II,III}.
Elemento de página que se utiliza para las marcas de tabulación. En este caso lo usamos para insertar 1 tabulación, que delimite la primera columna
Lo ejecutamos y con esto ya tenemos las filas con las 2 primeras columnas
b) Separar los números en columnas usando buscar y reemplazar con comodines
En un segundo paso separamos los números en columnas.
En este caso es muy sencillo porque todos los números tienen 2 decimales lo que facilita aplicar un buscar y reemplazar con comodines. Simplemente hay que buscar las “comas” de los decimales y, cada dos números a la derecha de la “coma”, insertar una tabulación.
Para ello
1.- El patrón de búsqueda con comodines que metemos en Buscar es: (,[0-9]{2}). En este grupo buscará una coma “,” y dos números consecutivos entre 0 y 9
2.- El patrón de reemplazo que metemos en Reemplazar es \1^t. Reemplazará con la misma cadena de búsqueda añadiendo una marca de tabulación que delimitará las columnas
Lo ejecutamos y con esto ya tenemos todo tabulado
Darle formato en una tabla es una obviedad. Se puede hacer directamente con Microsoft Word o copiando el contenido en una hoja de calculo (Excel, Calc,…)