Limpiar una base de datos con una lista

Resuelto
TOT127 Mensajes publicados 1045 Estado Miembro -  
TOT127 Mensajes publicados 1045 Estado Miembro -
Hola,
Estoy simplificando una base de datos que tiene la siguiente forma. Considera que cada línea es la descripción de una transferencia bancaria de financiación electoral (datos públicos). Cada candidato puede tener decenas de financiaciones, lo que da lugar a decenas de líneas.

código ele; datos; hora; contrato; candidato, transferencia, valor; financiador
133; ............................................ John; 77987; 800 $; Gran empresa
133; ............................................ John; 79619; 1900 $; enorme empresa
133; ............................................ Mark; 87681; 300 $; Pequeña empresa
(Coloco estas variables innecesarias, como el código de elección, al principio, como en el archivo)

Tengo 130,000 líneas así, porque la base de datos está sobre los candidatos, elegidos o no elegidos. Pero ¡Mark no ha sido elegido! Así que tengo el 90% de personas innecesarias en la base, y obviamente, el creador de la base no pensó en poner una variable "elegido".

Sin embargo,
Tengo otra base de datos, con 550 nombres: los elegidos.

¿Hay un proceso automático, o VBA (soy tan malo en VBA...) para limpiar la lista?
Me gustaría eliminar todas las líneas donde el CANDIDATO es un nombre que no figura en la otra lista. ¿Ves lo que quiero decir?

Muchas gracias por tu ayuda,

1 respuesta

via55 Mensajes publicados 14388 Fecha de registro   Estado Miembro Última intervención   2 755
 
Hola

Una posibilidad sin VBA
Suponiendo que los candidatos están en la columna E y la lista de elegidos en una Hoja2 en la columna A, añade en la primera hoja una columna en la que en la fila 2 pongas la fórmula =CONTAR.SI(Hoja2!A:A;C2)
Arrastra luego la fórmula hasta el final de tu hoja (doble clic en el cuadrado negro en la esquina inferior derecha de tu celda)
Esta fórmula de conteo debería devolver 0 si el nombre no existe en la lista de elegidos y 1 si existe

Luego, filtra la tabla en esta columna desmarcando el valor 0

Finalmente, copia la tabla filtrada y pégala en otra hoja usando pegar especial solo valores

Saludos
Via

--
"La imaginación es más importante que el conocimiento." A. Einstein
6
TOT127 Mensajes publicados 1045 Estado Miembro 96
 
¡Hola! Gracias por tu respuesta. He intentado, pero hay algo que debo estar haciendo mal porque no funciona. Antes tenía un error (valor) y ahora la fórmula se copia sin hacer nada. Voy a intentarlo de nuevo. Los nombres están en la columna E en la hoja 1 y en la columna A en la hoja 2, efectivamente.
1
TOT127 Mensajes publicados 1045 Estado Miembro 96
 
ahora no sé por qué, ha funcionado pero solo tengo ceros. Sin embargo, debería haber unos (lo verifiqué a mano)
0