
Tengo dos tablas que quiero fusionar en Excel:
Fecha | Correo electrónico |
---|---|
2019-07-07 06:49:10 | correo1 |
2019-07-14 20:21:16 | correo2 |
2019-06-23 18:22:40 | correo3 |
2019-08-11 13:17:54 | correo4 |
Y
Fecha | Correo electrónico | Número de artículo |
---|---|---|
04/02/2019 15:11 | correo1 | número 1 |
08/08/2019 20:21 | correo1 | Numero 5 |
06/05/2019 16:30 | correo2 | número 1 |
09/07/2019 13:00 | correo2 | número 2 |
09/08/2019 12:43 | correo2 | Numero 3 |
05/05/2019 18:13 | correo3 | número 7 |
28/06/2019 09:00 | correo4 | número 6 |
Quiero fusionar estas tablas en el correo electrónico. Para 'mail3' y 'mail4', esto debería ser bastante sencillo, obtienen el número 7 y el número 6. Sin embargo, para 'mail1' y 'mail2', esto es más difícil. Quiero fusionarlos comparando las fechas, para que obtengan el número de artículo relacionado con la fecha más cercana peroantesla fecha en la tabla 1. Intenté la BUSCARV normal para fusionar el correo electrónico, pero realmente no puedo entender si es posible hacerlo de forma condicional. por favor déjeme saber si usted necesita mas información. Gracias.
Respuesta1
Creo que deberías optar por INDEX
y MATCH
junto con AGGREGATE
. ¡Este combo es siempre al menos tan rápido VLOOKUP
y, en el mejor de los casos, MUCHO más rápido!
Así que aquí hay un ejemplo:
Fórmula en C2
:
=INDEX($G$2:$G$8,MATCH(AGGREGATE(14,3,($F$2:$F$8=B2)*($E$2:$E$8<A2)*($E$2:$E$8),1),$E$2:$E$8,0))
Arrastre hacia abajo...
Para responder a las inquietudes de @Rajesh a continuación, esto funciona en cualquier fila siempre que actualice las referencias en consecuencia, fila 1, 100, 1000, 100000. No importa. No olvide utilizar valores de fecha verdaderos y TRIM
los datos de muestra proporcionados por OP:
Fórmula en C182
:
=INDEX($G$182:$G$188,MATCH(AGGREGATE(14,3,($F$182:$F$188=B182)*($E$182:$E$188<A182)*($E$182:$E$188),1),$E$182:$E$188,0))
Respuesta2
Esta fórmula de matriz simple (CSE) encuentra la coincidencia más cercana para la fecha y soluciona el problema:
Fórmula editada en el segundo trimestre:
{=IF(ISBLANK(O2),"",IFERROR(INDEX($U$2:$U$9,MATCH(1,(P2=$T$2:$T$9)*(O2>=S$2:S$9),1)),""))}
- Termina la fórmula conCtrl+Mayús+Entrary llenarlo.
NÓTESE BIEN
La coincidencia en el armario es una cuestión discrecional, puede ser
Greater/Less than or Equals to the Criteria Date.
Entonces, en consecuencia, el operador de comparación puede modificarse en esta parte de la fórmula con
(O2>=S$2:S$9)
.
Ajuste las referencias de celda en la fórmula según sea necesario.