Pregunta para ELSAMATILDE

Hola Elsa:
Requiero de tu ayuda,
Me gustaría muchísimo que puedas brindármela.
Exporto desde una aplicación, una hoja excel con datos de interés (hoja "Datos").
Digamos por ejemplo:
ID Nombre Tipo Valor
-- ---------- ---- -----
02 Luis B 100
03 Elsa A 500
04 Juan C 40
02 Luis(2) C 60
Debo revisar, uno a uno cada registro, y de ser conveniente, asignar un nuevo valor.
Para esto creo las columnas:"NuevoValor", "NuevoTipo"
ID Nombre Tipo Valor NuevoTipo NuevoValor
-- ---------- ---- ------ ------------- ----------
02 Luis B 100 75
03 Elsa A 500
04 Juan C 40 B
02 Luis(2) C 60
Luego filtro a otra hoja ('Modif'), los registros que tengan contenido en 'NuevoValor' o 'NuevoTipo'
ID Nombre Tipo Valor NuevoTipo NuevoValor
-- ---------- ---- ------ ------------- ----------
02 Luis B 100 75
04 Juan C 40 B
Luego de un tiempo, vuelvo a exportar desde la aplicación, la Tabla
(Para ese entonces, abran aumentado los registros)
ID Nombre Tipo Valor
-- --------- ---- -----
01 Pedro A 80
02 Luis B 100
03 Elsa A 500
07 María B 12
04 Juan C 40
02 Luis(2) C 60
He aquí mi problema:
Como verán, la exportación es de los valores originales
Necesito un macro, que:
1) Cree las columnas 'NuevoValor' y 'NuevoTipo'
2) Revise los registros de la hoja "Modif", los encuentre en la hoja recién exportada "Datos", y actualice las columna NuevoValor y NuevoTipo
Nota:
1) El campo ID es casi único por registro, pero en muy pocas excepciones puede haber una duplicidad
2) El campo ID no esta ordenado
3) La hoja exportada no mantiene el mismo orden de la primera vez
Desde ya agradezco la atención que puedas poner a esta.
Pepe

1 Respuesta

Respuesta
1
Quizás no requiera de una macro sino de colocar 1 función en cada col (E y F) y arrastrar al resto de las filas hasta completar el rango de datos.
Son funciones matriciales, por lo que luego de escribirlas (o copiarlas) deberás presionar juntas las teclas Ctrl+mayúsc+Enter
=+SI(ESERROR(INDICE(Hoja2!$E$2:$E$5;COINCIDIR(B3 & C3 & D3;Hoja2!$B$2:$B$5 &Hoja2!$C$2:$C$5 & Hoja2!$D$2:$D$5;0)));"";INDICE(Hoja2!$E$2:$E$5;COINCIDIR(B3 & C3 & D3;Hoja2!$B$2:$B$5 &Hoja2!$C$2:$C$5 & Hoja2!$D$2:$D$5;0)))
Estoy considerando que la lista filtrada se encuentra en Hoja2 a partir de A2
Las duplicidades por excepción no se pueden prever en una fórmula o macro. Esa parte deberá ser de revisión manual.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas