TODOPIC

Misceláneas - Interés General => Off Topic => Mensaje iniciado por: micro_pepe en 30 de Junio de 2019, 16:08:35

Título: Buscar texto repetido en un word
Publicado por: micro_pepe en 30 de Junio de 2019, 16:08:35
Tengo una tabla en word con más de 300 filas, necesito saber si el contenido de una de las columnas está repetido ¿hay alguna herramienta que me ayude? si no tendría que ir copiando el contenido de cada celda, y buscar dentro del documento, pero 300 veces  :5] :5]

Saludos!!!
Título: Re:Buscar texto repetido en un word
Publicado por: planeta9999 en 30 de Junio de 2019, 19:06:10

Para trabajar con tablas que tienes que ordenar, buscar, extraer, etc.., mejor una hoja de cálculo.

Seguramente puedes pasar esa tabla a la hoja de cálculo de Libre Office, que además es compatible con Office de Microsoft. Entonces puedes hacer esa operación insitu con opciones de menú o crear scripts.
Título: Re:Buscar texto repetido en un word
Publicado por: Picuino en 01 de Julio de 2019, 14:18:19
Necesitas una macro en Excel o en Calc que compare la fila actual con todas las demás.

Tambien puedes pasarlo a texto plano y comparar las filas en Python
Título: Re:Buscar texto repetido en un word
Publicado por: Picuino en 01 de Julio de 2019, 14:37:05
En Python se haría así:

Código: Python
  1. # Leer las filas de texto desde el archivo datos.txt
  2. filas = open('datos.txt', 'rt').read().split('\n')
  3.  
  4. # Contar el número de filas repetidas y guardar su posición
  5. repetidas = {}
  6. for i in range(len(filas)):
  7.    if not filas[i] in repetidas:
  8.       repetidas[filas[i]] = [i+1]
  9.    else:
  10.       repetidas[filas[i]].append(i+1)
  11.  
  12. # Imprimir las filas repetidas, con su posición y el texto que contienen
  13. for key in repetidas:
  14.    if len(repetidas[key]) > 1:
  15.       print('Filas repetidas: %3s, %s' % (str(repetidas[key]), key) )
Título: Re:Buscar texto repetido en un word
Publicado por: Picuino en 01 de Julio de 2019, 14:47:58
Si quieres copiar y pegar el texto de word dentro de la macro Python:

Código: Python
  1. # Pegar aquí el texto a comprobar:
  2. filas = """texto uno
  3. texto dos
  4. texto tres
  5. ...
  6. texto final""".split('\n')
  7.  
  8. # Contar el número de filas repetidas y guardar su posición
  9. repetidas = {}
  10. for i in range(len(filas)):
  11.    if not filas[i] in repetidas:
  12.       repetidas[filas[i]] = [i+1]
  13.    else:
  14.       repetidas[filas[i]].append(i+1)
  15.  
  16. # Imprimir las filas repetidas, con su posición y el texto que contienen
  17. for key in repetidas:
  18.    if len(repetidas[key]) > 1:
  19.       print('Filas repetidas: %3s, %s' % (str(repetidas[key]), key) )
Título: Re:Buscar texto repetido en un word
Publicado por: KILLERJC en 01 de Julio de 2019, 15:09:07
https://wordmvp.com/FAQs/MacrosVBA/DeleteDupRows.htm

Lo podrias adaptar a tus necesidades....
Título: Re:Buscar texto repetido en un word
Publicado por: micro_pepe en 01 de Julio de 2019, 16:57:43
Bueno, me pegué un poco con el Python, y logré hacer funcionar el ejemplo de Picuino.
No hay filas repetidas  :)
El motivo de usar un documento de word, es que tengo que imprimirlo en papel, con un formato un poco presentable.

Gracias a todos!!!
Título: Re:Buscar texto repetido en un word
Publicado por: Picuino en 01 de Julio de 2019, 17:21:12
En ese caso te recomiendo que trabajes con el texto en formato plano o markdown y que utilices pandoc para transformarlo en un documento imprimible:
https://pandoc.org/index.html
Título: Re:Buscar texto repetido en un word
Publicado por: micro_pepe en 03 de Julio de 2019, 13:29:56
En ese caso te recomiendo que trabajes con el texto en formato plano o markdown y que utilices pandoc para transformarlo en un documento imprimible:
https://pandoc.org/index.html

OK, lo tendré en cuenta la próxima vez.

Saludos!!!