DYCHO
September 26, 2019, 8:21am
1
총 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 등을 써서 하는 방법은 제외)
sureshj
(suresh_hserus)
September 26, 2019, 11:39am
2
@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:
셀 쓰기 활동을 사용하고 특정 범위에서 Excel Vlookup을 작성할 수 있습니다.
그런 다음 범위를 읽고 특수 값을 붙여 넣으십시오.
Thanks,
Suresh J
ssong
(SongManho)
September 26, 2019, 4:52pm
3
제 생각엔
엑셀에서 직접 vlookup 사용 (근데 이건 싫다고 하셨으니)
한방에 하고 싶으시면,
2) invoke VBA
VBA로 vlookup 만들어 쓰는건 어떨까요?
DYCHO
November 8, 2019, 1:57am
4
답변 감사합니다.
Invoke VBA는 익숙치 않아서 대신에 For Each Row로 Vlookup 함수를 Assign 한뒤 Write Range 하는 형태로 구현을 하여 원하는 결과를 얻었습니다.
yj.um
(youngjae)
November 8, 2019, 5:39am
5
두개의 시트를 각각의 데이터 테이블로 만들어서 조인한다음에 필요없는 부분을 필터로 날리면될거 같습니다.