Gonduana

Contenidos para traductores

  • Blog
  • Empieza por aquí
    • Encuesta: coger
    • Encuesta: ratón o mouse
    • Artículos más leídos
    • Vídeos más vistos
    • Gonduana en las redes sociales
    • ¿Quieres saber más sobre mí?
  • Recursos
    • Software para traductores
    • Hardware para traductores
    • Internet para traductores
    • WordPress para traductores
  • Sobre mí
  • Servicios
  • Contacto

Cómo borrar los duplicados de una lista

Publicado el 1/marzo/2017 por Jesús Prieto

borrar duplicadosYa habíamos visto de pasada en este artículo cómo borrar los elementos duplicados de una lista. Vimos que la forma más fácil de borrar los duplicados era hacerlo desde una aplicación como Microsoft Excel.

Esta vez lo vamos a hacer con programación (mediante código VBA). Como ventaja añadida, conseguiremos algo que no podíamos con el anterior método.

De esta forma, podrás elegir el método que necesitas para cada ocasión.

Índice

  • 1.er método para borrar los duplicados (recordatorio)
  • 2.º método para borrar los duplicados (macro VBA)
    • Explicación de la macro
  • Conclusiones de borrar los duplicados

⁂

1.er método para borrar los duplicados (recordatorio)

Partimos de una lista de elementos como esta:

Lista en Excel sin borrar los duplicados

Esta lista te interesa para:

  • extraer terminología de un documento;
  • extraer las variables que vas a incluir en una memoria de traducción.

Independientemente del objetivo de esta lista, ahora quieres borrar sus duplicados para tener una lista más aprovechable.

Ya vimos que el botón para borrar duplicados en Excel se llama Quitar duplicados y está dentro del grupo Herramientas de datos de la ficha Datos de la cinta de Excel:

Herramienta de datos - Quitar duplicados en Excel

Primero seleccionas el rango de celdas con todos los elementos de la lista y después pulsas el botón Quitar duplicados y después de este mensaje informativo:

Valores duplicados enocntrados y borrados en Excel

consigues la lista limpia que querías, sin ningún elemento repetido:

Lista en Excel con los duplicados borrados - forma 1

Hasta aquí bien, ¿verdad?

Nota: por simplicidad, he confeccionado una lista breve de solo 7 elementos, pero lo dicho es extrapolable a listas gigantescas de cientos o miles de elementos.

Si te fijas bien, aparte de que ha desaparecido un elemento «Microsoft» y otro «IBM», verás que ha desaparecido el elemento «SUN» porque se ha tomado como idéntico a «Sun». Ambos elementos se diferencian nada más en que uno es la versión en mayúsculas del otro. Si esto es lo que quieres, ¡fenomenal, ya has terminado!

Pero si quieres mantener los dos elementos, «Sun» y «SUN», porque justamente los tomas como diferentes, entonces debes emplear otro método para borrar los duplicados y que vamos a ver ahora:

⁂

2.º método para borrar los duplicados (macro VBA)

Este segundo método tiene en cuenta que «Sun» y «SUN» son elementos distintos y, por tanto, hay que mantener ambos en la lista.

Ahora no podremos usar el botón Quitar duplicados, sino que ejecutaremos una macro en VBA.

La macro que te propongo usar es la siguiente:

Sub borrarDuplicados()
' Borra los duplicados de la columna A. Distingue mayús./minús.
' www.gonduana.com/como-borrar-los-duplicados-de-una-lista
Dim lista, elemento, final
    With Range("a1", Range("a" & Rows.Count).End(xlUp))
        lista = .Value
        .ClearContents
        With CreateObject("Scripting.Dictionary")
            For Each elemento In lista
                .Item(elemento) = Empty
            Next
            final = .keys
        End With
        .Resize(UBound(final) + 1).Value = Application.Transpose(final)
    End With
End Sub

Una vez tienes este código en tu colección de macros, podrás ejecutarla cuando la necesites, incluso con tu propio botón personalizado, y es tan directo como el botón Quitar duplicados que trae Excel de serie en la cinta.

La lista limpia que consigues es:

Lista en Excel con los duplicados borrados - con VBA

Explicación de la macro

Antes de ejecutar la macro borrarDuplicados, se supone que tienes la lista en bruto en la columna A de una hoja de Excel.

Atento ahora, que el código es complicadillo:

En línea 5 se selecciona las celdas con datos mediante un método ingenioso (no, no es mío) que emplea la propiedad Count y el método End.

En línea 6 se pasan todos los valores de la lista en bruto a la matriz lista.

Es un paso necesario, porque justo en la siguiente línea (7) se borra toda la lista de la hoja de Excel.

En la línea 8 se crea un objeto especial, un diccionario (Scripting.Dictionary). Como todos los diccionarios, este diccionario recién creado tiene entradas, con la particularidad de tener claves que, por defecto, distinguen entre mayúsculas y minúsculas. Esta propiedad tan interesante es la que aprovechamos en la macro.

En el lazo For Each … Next, que comprende las líneas 8 a 11, se pasa por cada uno de los elementos de la matriz lista.

Al final, en la línea 12 se pasa a la matriz final los valores de las claves, los valores que son exclusivos y únicos; o lo que es lo mismo, sin los valores repetidos.

En la línea 14 se trasponen los valores (se pasan de horizontal a vertical) para colocarlos en la misma columna A de la hoja de Excel.

Como digo, la macro es complicada, con mucho la más complicada que hemos visto en Gonduana, pero te da lo mismo: solo tienes que copiarla tal cual, pegarla con tus otras macros y ejecutarla cuando la necesites. Y ya sabes que una macro complicada se copia igual que una macro sencilla.

⁂

Conclusiones de borrar los duplicados

Hemos visto dos procedimientos para borrar los duplicados:

  1. Uno directo con el botón Quitar duplicados de la cinta de Excel, que no tiene en cuenta las mayúsculas y minúsculas («a» y «A» son idénticos, de modo que uno de ellos desaparecerá).
  2. Otro procedimiento con código VBA que distingue entre mayúsculas y minúsculas («a» y «A» son diferentes, de modo que ambos se mantendrán).

El resultado final es distinto, de modo que podrás elegir según tu objetivo.

⁂

Nada más, solo un par de recomendaciones si te interesa la programación de VBA en Excel:

  • Lee los otros artículos de VBA o de Excel de este mismo blog. Los tienes todos si filtras por «VBA» o «Excel» en la nube de etiquetas (columna derecha del blog).
  • Suscríbete al boletín del blog, o sígueme en LinkedIn, Facebook o Twitter (@jssprt). De esta manera, serás el primero en enterarte de la publicación de los artículos.

 

 

Entradas relacionadas

Si te ha gustado el artículo, además de compartirlo en tus redes sociales,

puedes leer otros artículos de Gonduana del mismo estilo:

Celda de enfoque en Excel - principal

Celda de enfoque en Excel

1/diciembre/2025

¿Nunca te has perdido en Excel cuando la hoja de datos es muy grande? Me refiero a estar editando una fila, querer cambiar un dato

Leer el artículo »
Función TRADUCIR en Excel

Cómo utilizar la función TRADUCIR en Excel

3/marzo/2025

Si tienes Microsoft Excel 365, ya puedes utilizar la nueva función TRADUCIR en Excel. Es una función muy sencilla y solo tiene tres parámetros: El

Leer el artículo »
Funciones de expresiones regulares en Excel

Funciones de expresiones regulares en Excel

7/enero/2025

Si tienes Microsoft Excel 365, ya puedes utilizar las nuevas funciones de expresiones regulares en Excel. Me refiero a las siguientes tres nuevas funciones:

Leer el artículo »

Cosas que he aprendido este año 2022

30/diciembre/2022

Quería compartir las cosas que aprendí este año, algunas serán obvias para ti, otras no te llamarán la atención, espero que haya alguna que sea

Leer el artículo »

Macro de VBA para pegar sin formato en Word

2/agosto/2020

Al hilo del artículo anterior del blog, algunos me habéis comentado que sería interesante tener también la macro de VBA para pegar sin formato en

Leer el artículo »
Comodines en Excel

Los comodines de Excel

19/noviembre/2019

¿Quién ha dicho que no hay comodines en Excel? Si ya conoces la utilidad de los comodines de Word, tienes que conocer también los comodines

Leer el artículo »
Jesús Prieto

Jesús Prieto

Querido traductor: quiero compartir contigo muchas cosas que podrás aprovechar como profesional: desde herramientas especiales hasta técnicas comerciales; desde estrategias de marketing hasta trucos de productividad personal; desde cómo diseñar tu marca personal hasta novedades de impuestos.
Todos los artículos

Publicado en: macros, productividad Etiquetado como: Excel, VBA

Comentarios

  1. Marcela dice

    1/marzo/2017 a las 1:43 pm

    ¡Muchas gracias!

    No sabes lo bien que me viene. Hace tiempo que quiero hacer una macro parecida, para poder hacer una planilla excel que me sirva para hacer después una memoria de traducción.

    En esta macro, diferencias entre mayúsculas y minúsculas. ¿Sabes si sería posible diferenciar aquellas celdas que comiencen con un número (entre uno y tres dígitos). Supongo que sí, pero mi conocimiento de excel es limitadísimo, y de VBA sé todavía menos.

    Saludos cordiales.

    Responder
    • Jesús Prieto dice

      1/marzo/2017 a las 2:17 pm

      Hola, Marcela:

      Me alegro mucho de que te sea útil.

      Una pregunta: ¿Para qué quieres saber las celdas que empiecen por un número?

      Si solo es para borrarlas, simplemente ordena la columna de menor a mayor (botón A-Z en la ficha Datos de la cinta de Excel); las celdas que empiecen por un número quedarán arriba todas juntas y luego las borras manualmente.

      Saludos.

      … Jesús Prieto …

      Responder
      • Marcela dice

        1/marzo/2017 a las 6:32 pm

        Gracias.

        El asunto es que no las quiero borrar, sino trasponer de vertical a horizontal, pero conservando el número. Número que, además, para excel no es tal porque está dentro de una cadena de caracteres.

        Pero, gracias, nuevamente. Ya le encontraré la vuelta. (Espero).

        Responder
        • Jesús Prieto dice

          1/marzo/2017 a las 10:42 pm

          Bueno, puedes ordenar la lista y en vez de borrar esas celdas que empiezan con un número, las traspones…

          Un saludo.

          … Jesús Prieto …

          Responder
  2. Hector Martinez dice

    1/marzo/2017 a las 3:21 pm

    Hola Jesus! Muchas gracias por la informacion. Tengo una situacion algo parecida, pero con Word. Al extraer la informacion de una base de datos, aparecen tres o cuatro oraciones repetidas en el document de Word por lo menos 20 veces. Dos de esas oraciones tienen urls y esto dificulta eliminarlas con "Find and Replace". Existe alguna forma de eliminar esas oraciones en Word antes de trabajar la traduccion en Trados sin necesidad de entrarlas una a una en "Find and Replace" (Encontrar y reemplazar)? Saludos desde America!

    Responder
    • Jesús Prieto dice

      1/marzo/2017 a las 4:49 pm

      Hola, Hector:

      Lo siento, no sabría cómo hacerlo en Word, pero supongo que tiene que ser posible programando en VBA…

      Por curiosidad: Me pregunto por qué quieres borrar esas oraciones duplicadas, cuando Trados Studio maneja muy bien las repeticiones.

      Un abrazo desde España.

      … Jesús Prieto …

      Responder
      • Hector Martinez dice

        1/marzo/2017 a las 5:06 pm

        Muchas gracias, Jesus! Es muy probable que la solucion este en Trados. Cuando voy a los filtros y selecciono "Repeticiones", no solo aparencen las 4 oraciones varias veces y tambien muchas otras unidades repetidas. Seria ideal que solo aparecieran esas 4 oraciones las veces que estan repetidas para hacer "lock" y asi no tener que trabajarlas durante la traduccion. Hasta ahora no he logrado eso. Saludos!

        Responder
        • Jesús Prieto dice

          1/marzo/2017 a las 5:23 pm

          En Studio puedes filtrar la repeticiones como has hecho y, además, filtrar por contenido.

          Por ejemplo, si quieres bloquear las oraciones que tienen una URL, puedes escribir www en el campo origen de los filtros. De esa forma, solo te saldrán los segmentos que te molestan. Para esto, puedes mirarte este otro artículo mío:

          Traducir y revisar con los filtros de SDL Trados Studio

          Para rizar el rizo, en vez de filtrar las repeticiones, puedes filtrar las repeticiones, excepto la primera aparición. De este modo, estarás seguro de que puedes bloquear todos los segmentos que te salgan porque el primero quedará fuera.

          ¡Suerte!

          … Jesús Prieto …

          Responder
  3. Hector Martinez dice

    1/marzo/2017 a las 5:30 pm

    Excelente. Muchas gracias, Jesus!

    Responder
  4. Hector Martinez dice

    1/marzo/2017 a las 7:15 pm

    Hola de Nuevo! Seria posible crear una expresion regular que incluya varias oraciones para que aparezcan en el filto todas a la vez? No se si me he explicado bien. Saludos!

    Responder
    • Jesús Prieto dice

      1/marzo/2017 a las 7:54 pm

      Sí se puede, sí.

      Aparte del anterior artículo, tienes este otro que también te puede ayudar:

      Expresiones regulares en los filtros de Studio

      ¡Suerte!

      … Jesús Prieto …

      Responder
  5. Hector Martinez dice

    1/marzo/2017 a las 8:24 pm

    Muy bien, Jesus. Muchas gracias. Un abrazo!

    Responder
  6. Almudena Ballester dice

    19/julio/2018 a las 11:34 am

    Hola Jesús:

    Me ha venido genial esta macro. No la conocía y googleando lo encontré aquí. ¡Muchas gracias!

    Un abrazo,

    Almudena

    Responder
    • Jesús Prieto dice

      19/julio/2018 a las 12:01 pm

      Muy buenos días, Almudena:
      ¡Encantado de verte por aquí y de que la macro te resultara útil!
      Un fuerte abrazo,
      … Jesús Prieto …

      Responder
  7. German Gandar dice

    9/noviembre/2018 a las 2:23 am

    Muy buenas tardes. Disculpas por el pedido de ayuda, pero ando tratando de crear un codigo y no lo consigo. Lo que deseo es ocultar los duplicados de un rango de filas de una misma columna pero conservar solo uno, o sea sin perderlo de vista, que solo se oculten las repeticiones, pero solo ocultarlas ( no eliminarlas), mediante .hidden=true, y este tipo de sintaxis no me sirve ya que la oculta y a pesar de eso la toma como como repetida y termino ocultando todas. Espero haberme explicado bien. Aguardo tu esperanzadora ayuda. Saludos desde argentina!!!

    Responder
    • Jesús Prieto dice

      9/noviembre/2018 a las 8:30 am

      Hola, Germán:
      No olvides pasarte por aquí para poner el código de tu macro, porque podrás ayudar a más lectores.
      Un abrazo desde España,
      … Jesús Prieto …

      Responder

Comentar Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

 

Jesús Prieto

Jesús Prieto 2015

Sobre mí

Lo más visto…

Artículos más leídos de Gonduana
Vídeos más vistos de Gonduana
Gonduana en las redes sociales

Últimos artículos

  • Celda de enfoque en Excel
  • Cómo utilizar la función TRADUCIR en Excel
  • Funciones de expresiones regulares en Excel
  • Reemplazar todo en Trados Studio 2024
  • Cosas que he aprendido este año 2022
  • Cómo escribir letras griegas con AutoHotkey
  • Macro de VBA para pegar sin formato en Word
  • Macro de AutoHotkey para pegar sin formato en Word
  • Extranjerismos en el ajedrez
  • Cómo buscar en el diccionario de la RAE con AutoHotkey

Nube de etiquetas

anglicismos AutoHotkey cobros comodines copias de seguridad correo español Excel foto fórmulas geografía geometría GTD historia imagen impagos InDesign libros marca matemáticas mouse MT ortografía Outlook parábolas PDF PHP poesía power PowerPoint RAE ratón regex retrasos tarifas teclado tipografía TM Trados Studio VBA vídeo Word WordPress XML zoología

Categorías

  • adaptación (3)
  • blog (11)
  • comercial (24)
  • contabilidad (2)
  • español (6)
  • etimología (5)
  • fiscalidad (2)
  • hardware (3)
  • macros (42)
  • marketing (8)
  • noticias (4)
  • productividad (43)
  • seguridad (5)
  • social (9)
  • software (41)
  • TAO (40)
  • terminología (9)
  • traducción automática (3)
  • traducción literaria (1)
  • tradumática (40)
  • vídeo (18)
Buscar en Gonduana
Política de privacidad
Política de cookies
Aviso legal
Creative Commons

Licencia Creative Commons

Blog de Gonduana: recursos para traductores

Esta web usa cookies
Es cansino, sí, pero la ley europea me obliga a avisarte que este blog, como casi el 100%, usa cookies para recabar datos. ¿Estás de acuerdo con mi Política de cookies? Vale Rechazar Más información
Política de cookies

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these cookies, the cookies that are categorized as necessary are stored on your browser as they are as essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may have an effect on your browsing experience.
Necessary
Siempre activado
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
GUARDAR Y ACEPTAR