Cruzar datos excel o access

Hola, quisiera saber si me podes orientar sobre como teniendo dos hojas de excel con los mismo campos puedo cruzar datos entre ambas: por ejemplo en una tengo números de articulo de productos en oferta y en la otra éstos mezclados con muchos más, ¿cómo puedo hacer para que se marquen en la que están todos mezclados solo los que están en oferta de la otra hoja?
Muchas gracias...
4

4 respuestas

1
Respuesta de
Hola shakeo, he preparado una macro que funciona con rangos.
---------------------------
Sub Busca_Ofertas()
Dim x As Integer
Dim i As Integer
For i = 1 To Range("Ofertas").Cells.Count
For x = 1 To Range("Productos").Cells.Count
If Range("Ofertas").Cells(i) = Range("Productos").Cells(x) Then
Range("Productos").Cells(x, 2) = "Producto en Oferta"
End If
Next
Next
End Sub
------------------------
Ahora te explico como trabaja.
La he preparado con Rangos en excel porque creo que es muy fácil de usar y se dimensiona automáticamente cuando cambias los rangos de los datos.
En la Hoja donde tienes los datos de Ofertas, tienes que asignarle un nombre de rango en Excel.
(Insertar-->Nombres-->Definir-->seleccionas la columna que contiene los datos y le das un nombre: yo le he puesto Ofertas, si lo cambias, acuérdate de modificar también en la Macro)
Haces lo mismo para el rango que contiene los datos de los productos. (insertar, nombres... Productos).
Recuerda que deben coincidir exactamente, incluso mayúsculas.
Tal como he puesto en la macro, debes tener una columna en blanco, justo a continuación de los datos de productos, es ahí dónde mi macro te pondrá "Producto en Oferta"
Espero te ayude.
Saludos
Añade un comentario a esta respuesta
1
Respuesta de
Se me ocurre esto: primero en tu hoja de artículo de productos en oferta debes tener una columna (o renglón y sólo cambia lo que te digo entre columna y fila) que te sirva de identificador (puede ser el nombre del artículo, o una clave, etc). Ordena dicha hoja por esa columna.
Luego, en la otra hoja, suponiendo que tengas en la columna B los mismos identificadores, y en la columna G quieres que te diga si está en la primera hoja o no. Ve a la celda G2 (suponiendo que la fila 1 son los títulos) y pon la fórmula =SI(ESERROR(BUSCARV(B2, tabla, 1,0)),"No","Sí")
Finalmente, te recomiendo que a esta hoja le apliques el autofiltro (menu>Datos>Filtro>Autofiltro) y con eso puedes pedir que te muestre los renglones que en G tengan "todas", "si" o "no"
Añade un comentario a esta respuesta
1
Respuesta de
Tenés la función BUSCARV(...) que sirve para lo que vos decís; la forma de la función es
=BUSCARV(valor, matriz, ind_columna;FALSO)
Donde:
Valor: el valor buscado (en este caso el código)
Matriz: la matriz donde está buscando (en este caso la hoja con las ofertas). Una consideración es que la primer columna de la matriz debe ser donde estén los códigos
ind_columna: número de la columna que te interesa tomar empezando por la que tiene el código como número 1 (para lo que vos querés en principio puede ser cualquier valor que esté dentro del rango por ejemplo 1)
FALSO: esto es para asegurar que encuentre el código (en este caso si no lo encuentra va a dar error)
Luego vos ponés esta fórmula y donde haya error es porque no está de oferta; la podes combinar por ejemplo así:
=SI(ESNOD(BUSCARV(valor,matriz,1,falso)),"NO está de oferta","SI está de oferta")
Esto daría un mensaje que indica si está o no de oferta
Estoy asumiendo el excel en español y que el separador es la coma (probablemente en tu maquina sea punto y coma)
Añade un comentario a esta respuesta
1
Respuesta de
En Excel.. existe la funciopn BUSCARV ... esa busca valores en toda una columna ... esa función puedes usar.. para lo que estas buscando,... saludos
Añade un comentario a esta respuesta
Añade tu respuesta
Haz clic para o
Escribe tu mensaje
¿No es la respuesta que estabas buscando? Puedes explorar otras preguntas de los temas Bases de datosMicrosoft Excel o hacer tu propia pregunta: