
Excel에 병합하려는 두 개의 테이블이 있습니다.
날짜 | 이메일 |
---|---|
2019-07-07 06:49:10 | 메일1 |
2019-07-14 20:21:16 | 메일2 |
2019-06-23 18:22:40 | 메일3 |
2019-08-11 13:17:54 | 메일4 |
그리고
날짜 | 이메일 | 문서 번호 |
---|---|---|
2019년 2월 4일 15:11 | 메일1 | 1번 |
2019년 8월 8일 20:21 | 메일1 | 5번 |
2019년 5월 6일 16:30 | 메일2 | 1번 |
2019년 7월 9일 13:00 | 메일2 | 2번 |
2019/08/09 12:43 | 메일2 | 3번 |
2019년 5월 5일 18:13 | 메일3 | 7번 |
2019년 6월 28일 09:00 | 메일4 | 6번 |
이 테이블을 이메일로 병합하고 싶습니다. 'mail3'과 'mail4'의 경우 이것은 매우 간단합니다. 7번과 6번을 얻습니다. 그러나 'mail1'과 'mail2'의 경우에는 이것이 더 어렵습니다. 날짜를 비교하여 병합하여 가장 가까운 날짜와 관련된 기사 번호를 얻고 싶지만~ 전에표 1의 날짜입니다. 일반 VLOOKUP을 사용하여 이메일을 병합하려고 시도했지만 조건부로 병합하는 것이 가능한지 실제로 알 수는 없습니다. 더 많은 정보가 필요하면 알려주시기 바랍니다. 감사해요.
답변1
INDEX
와 MATCH
함께 를 선택해야 한다고 생각합니다 AGGREGATE
. 이 콤보는 항상 최소한 그만큼 빠르며 VLOOKUP
기껏해야 훨씬 더 빠릅니다!
예는 다음과 같습니다.
공식 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))
아래로 드래그하세요...
아래 @Rajesh의 우려 사항에 답하기 위해 행 1, 100, 1000, 100000에 따라 참조를 업데이트하는 한 모든 행에서 작동합니다. 중요하지 않습니다. TRIM
OP에서 제공하는 실제 날짜 값과 샘플 데이터를 사용하는 것을 잊지 마세요 .
공식 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))
답변2
이 단순 배열(CSE) 수식은 날짜와 가장 가까운 일치 항목을 찾아 문제를 해결합니다.
2분기에 수정된 공식:
{=IF(ISBLANK(O2),"",IFERROR(INDEX($U$2:$U$9,MATCH(1,(P2=$T$2:$T$9)*(O2>=S$2:S$9),1)),""))}
- 다음으로 수식을 완성하세요.Ctrl+Shift+Enter그리고 그것을 채워라.
주의
클로짓 매치는 임의적인 문제입니다.
Greater/Less than or Equals to the Criteria Date.
따라서 비교 연산자는 수식의 이 부분에서 로 변경될 수 있습니다
(O2>=S$2:S$9)
.
필요에 따라 수식의 셀 참조를 조정합니다.