Comparar y cambiar datos excel mediante formulario

Ej. Tengo en un mismo libro de excel, 2 hojas con los mismos datos, salvo que en la hoja 3 no tiene anotado el país y en la hoja4 si están anotados, lo que necesito es colocarle también a la hoja 3 el país, de antemano muchas gracias

2 Respuestas

Respuesta
1

H o l a:

Te paso la macro

Sub comparar_copiar()
'Por Adriel Ortiz
    Set h1 = Sheets("Hoja3")
    Set h2 = Sheets("Hoja4")
    For i = 2 To h1.Range("A" & Rows.Count).End(xlUp).Row
        Set b = h2.Columns("A").Find(h1.Cells(i, "A"), lookat:=xlWhole)
        If Not b Is Nothing Then
            h1.Cells(i, "D") = h2.Cells(b.Row, "D")
        End If
    Next
    MsgBox "Proceso terminado", vbInformation
End Sub

Valora a respuesta para finalizar como Excelente o bueno saludos!

Respuesta
1

.30.11.16 #BUSCARV

Buenas tardes, Hugo

Me parece que es la típica aplicación de la función BUSCARV(), sobre todo por la existencia de un código común.

Estuviste muy bien en colocar imágenes de tus dos planillas, lo que nos facilita entender el problema y dar una solución más certera.

En principio, coloca en la celda D2 (de la Hoja3) la siguiente fórmula:

 =BUSCARV($A2;Hoja4!$A$1:$E$240;4;FALSO)

Ten en cuenta si usas comas o punto y coma para separar los argumentos. Yo usé ";" en este ejemplo. Asígnale el formato deseado y, luego, copia esta celda y pégala en las restantes de esta misma columna.

Como verás, el rango de búsqueda es más amplio, por si a futuro agregarás más datos.

Si, eventualmente, creyeras que pudieran haber códigos en hoja3 que no estén hoja4, aquella fórmula devolverá #N/A! (No disponible)

Para evitar ese #N/A puedes usa esta variante que es similar:

=SI(ESNOD(BUSCARV($A2;Hoja4!$A$1:$E$240;4;FALSO));"ID inexistente";BUSCARV($A2;Hoja4!$A$1:$E$240;4;FALSO))


Entonces, la función Buscarv necesita tres argumentos más un cuarto opcional.

El primero es el valor que se busca en la base.
Esta, a su vez, es el segundo argumento de la fórmula. El uso del signo $ es para que siempre se refiera a ese rango aún copiando la fórmula a otras celdas/hojas. Notarás que excede la cantidad de elemento para que considere futuras incorporaciones. Desde luego puede estar en la misma hoja o en otra, pero en este caso deberás indicarle el nombre en la dirección de la base. Por ejemplo: Hoja4!$A$1:$E$240

El tercer argumento indica qué columna de la base indicada debe ser mostrada donde está la fórmula. Cómo intento mostrar las descripciones, indiqué la columna 4, para que traiga el dato de "país". Si te fijas en la imagen verás que coloqué el número correspondiente a cada columna. Si pegas esta fórmula en otra celda y cambias el número de columna, traerá lo que haya en ella.

Finalmente el cuarto argumento opcional, cuando está en 0 (Falso) obliga a una búsqueda exacta de lo que está en la celda A2. Si no encuentra ese código, como mencioné, la fórmula devolverá #N/A! (No disponible)

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas