Tengo una pequeña base de datos, con 2 campos, 2 columnas Numero - Valor Y los datos en las filas 1;Valoruno 2;Valordos 3;Valortres Etc, hasta 200 filas Quiero diseñar un formulario para la recogida de datos y aplicar las coincidencias en esa base de datos. En el formulario, una simple planilla con una columna, anoto los números uno debajo del otro, en la misma columna 4,8,25,33,56,58,78,80,83
Quiero aplicar una macro o fórmula que haga coincidir estos números con los la base anterior, y me devuelva los coincidentes. ¿Cómo lo hago?
1 Respuesta
Respuesta de fejoal
2
2
fejoal, Por falta de tiempo para responder como me gusta hacerlo suspendo...
En realidad, existen varias formas de realizarlo. Si sólo se tratara de determinar si existe o no, podrías usar la función, precisamente, COINCIDIR. Su sintaxis es: =COINCIDIR(valor_buscado,matriz_de búsqueda,tipo coincidencia) Donde: -Valor_buscado, puede ser una referenacia a la celda donde está el número cuya existencia en la primera base quieres determinar. -Matriz_de búsqueda: es tu base original (200 x 2) Tipo coincidencia: puede ser 1, 0, -1 --Si = 1 encuentra el mayor valor que es inferior o igual al valor_buscado, la base debe estar ordenada ascendentemente. --Si = -1 encuentra el menor valor que es mayor o igual, la base debe estar ordenada descendentemente. --Si = 0 la coincidencia debe ser exacta y no es necesario tener ordenada la base. Si COINCIDIR no puede encontrar una coincidencia, devuelve el valor de error #N/A Pero si encuentra el valor, la fórmula devuelve la posición donde lo encontró. Por eso, pienso que es más práctico usar la función BUSCARV(). Supongamos que el número se encuentra en la columna "H" en la base_A (los que tipeas uno abajo del otro) y en la columna M de la base_B (la base original). Para controlar si cada número en base_A está en base_b o no, usaríamos esta fórmula en una columna libre al inicio de Base_A: =SI(ESNOD(BUSCARV(H2,<columna M de base_B>,1,FALSO)),"No existe en B","Existe en B") Obviamente <columna M de base_B> debe ser reemplazado por el rango específico de búsqueda. También, ten en cuenta si usas comas o punto y coma para separar los argumentos. Yo usé "," en este ejemplo. Una vez tipeada la primer fórmula, copiarla para el resto de los registros en esta base. Bien, esta fórmula devolverá "No existe en B" si el código o clave en la celda H2 no existe en la columna M. Finalmente aclaro que ESNOD() es una función que devuelve verdadero si encuentra un error del tipo #N/A (NO Disponible) es decir que el dato no fue encontrado en la base de búsqueda. El condicional SI() es el encargado de mostrar uno u otro mensaje según el caso. Además la ventaja principal de esta función es que, además del control, te permite traer cualquier valor asociado a tal número que estuviera en tu ase original, por ejemplo el que tenga en la segunda columna. Asumiendo rangos posibles, esta sería la fórmula que lo haría: =SI(ESNOD(BUSCARV(H2,$M$1:$N$200,2,FALSO)),"No existe en Base",BUSCARV(H2,$M$1:$N$200,2,FALSO)) O sea, si no encuentra el valor indicado en la celda H2, devolverá el mensaje "No existe en Base", sino mostrará el contenido de la celda en la segunda columna de donde esté el número buscado. Espero haberte ayudado. *==========================================* *==========================================* Un abrazo! Fernando
Revisando la respuesta que te dí, hace algunos días atrás, noto que por alguna extraña razón, las comillas fueron reemplazadas por un extraño código ("). No sé si tu también las ves así. Pero para que sea entendible copia el texto que te envié a MS Word y si constinuas viendo el código reemplázalo por comillas... En otro orden de cosas, me interesa saber si esto te fue de utilidad. Si así fuera.