날짜 기반 조건부 VLOOKUP

날짜 기반 조건부 VLOOKUP

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

INDEXMATCH함께 를 선택해야 한다고 생각합니다 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에 따라 참조를 업데이트하는 한 모든 행에서 작동합니다. 중요하지 않습니다. TRIMOP에서 제공하는 실제 날짜 값과 샘플 데이터를 사용하는 것을 잊지 마세요 .

여기에 이미지 설명을 입력하세요

공식 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).

필요에 따라 수식의 셀 참조를 조정합니다.

관련 정보