엑셀의 Vlookup 대비 Speed 개선 방법이 있나요?

총 2개의 엑셀 Sheet 가 있는데,

첫번째 Sheet는 Row 갯수가 약 40만개
두번째 Sheet는 약 3만개 입니다.

두번째 Sheet를 참조하여 첫번째 Sheet에 값을 입력해야 하는데 엑셀에서 직접 Vlookup 실행 시 단 몇 초면 끝나는데 아래의 같이 RPA로 구현을 할 경우 시간이 너무 오래 걸립니다.(1시간 가량 예상)

  • 첫번째 방법: For each row 안에 두번째 For Each row를 돌려 IF 문에 따라 값을 찾으면 Assign 하고 Break(Break를 안 쓰면 40만개 x 3만개를 해야 함으로 매우 비효율적임)

  • 두번째 방법: For Each Row 안에 Lookup Datatable에서 값을 찾음. 첫번째 방식보다는 살짝 빠르나 값을 못 찾을 경우 Return이 안 되고 엑셀 함수 대비해서는 도토리 키재기 수준…

여기서 질문은,
엑셀에서 Vlookup 하는 정도의 유사한 속도로 빠르게 구현할 수 있는 방법이 있을까요?
(엑셀 상에서 물리적으로 셀렉터를 잡아 직접 Click, Type into, Send hotkey 등을 써서 하는 방법은 제외)

@DYCHO

You can use Write Cell activity and write excel Vlookup in your specific range.
Then read the range and write it to paste special value.
I used Google translate to translate below​:blush::blush:

셀 쓰기 활동을 사용하고 특정 범위에서 Excel Vlookup을 작성할 수 있습니다.
그런 다음 범위를 읽고 특수 값을 붙여 넣으십시오.

Thanks,
Suresh J

제 생각엔

  1. 엑셀에서 직접 vlookup 사용 (근데 이건 싫다고 하셨으니)

한방에 하고 싶으시면,
2) invoke VBA
VBA로 vlookup 만들어 쓰는건 어떨까요?

답변 감사합니다.
Invoke VBA는 익숙치 않아서 대신에 For Each Row로 Vlookup 함수를 Assign 한뒤 Write Range 하는 형태로 구현을 하여 원하는 결과를 얻었습니다.

두개의 시트를 각각의 데이터 테이블로 만들어서 조인한다음에 필요없는 부분을 필터로 날리면될거 같습니다.