본문 바로가기

RPA

[UiPath] DataTable에 이상한 값(-214..)이 나올 때

열심히 개발을 하고 있는데 암만봐도 너무 수상해보이는 데이터를 발견했다..
-214...같은 언뜻보면 Integer의 최소값같은 그런 수가 DataTable에 출력되는것이다.

엑셀 수식을 사용하기 위해서
DT에 엑셀 수식 넣기 --> 수식을 넣은 DT를 엑셀 파일에 쓰기 --> 수식 값이 나온 엑셀 파일을 다시 DT에 저장하기
이러한 과정을 거치고 나면 종종 -2146826281과 같은 값이 나온다!

원인은 #N/A와 같이 엑셀 수식이 오류가 난 값을 UiPath로 Read해서 DT로 만들게 되면 -214..의 값으로 저장되기 때문이었고
해결 방법은 Read했을 때 나온 -214..의 값을 #N/A --> N/A 와 같이 #만 Replace한 기존 오류 값을 넣어주면 된다.
(이 방법은 사실 개발자의 해결방법이고.. 담당자 입장에선 뭔가 당혹스럽지 않을까라는 생각을 해본적은 있다 오류난 수식을 볼 수도 없고 'N/A'라는 글자만 딱 찍혀 있으니... 그렇지만... 저걸 저렇게 쓰레기값으로 놔둘순 없지 않나...)

여러가지 테스트로 알게된 사실은 UiPath가 엑셀 수식 오류인 셀을 Read할 때 아예 -214..로 읽어서 DT에 저장한다는 것이다. 이 #N/A 값을 그대로 엑셀 파일에 출력하고 싶다면 Write하기 전에 -214.. 값들을 모두 #N/A로 바꿔서 Write해야하고 또 다시 그 엑셀파일을 Read한다면 다시 -214..값으로 변한다.

 

이 밑으론 그냥 내 궁금증 해결 내용이다!!

------------------------------------------------------

오늘 글을 쓰게 된 이유는 엑셀 수식 오류들을 Read했을 때 모두 같은 값을 뱉어내는지 궁금했기 때문이다.

 

우선 MS Office Excel support를 참고하여 모든 오류값들을 만들어주었다. 다음 링크를 참조하였다.
support.microsoft.com/ko-kr/office/%ec%88%98%ec%8b%9d-%eb%b0%8f-%ed%95%a8%ec%88%98-294d9486-b332-48ed-b489-abe7d0f9eda9?ui=ko-KR&rs=ko-KR&ad=KR#id0eaabaaa=errors

 

수식 및 함수

사용자만의 수식 및 함수를 만드는 주요 기술을 알아보세요.

support.microsoft.com

에러 값

이런 식으로 위의 링크를 참조하거나 테스트 데이터를 만들면서 찾은 총 8개의 에러 상황을 만들어줬다. 
다음은 그냥 시트별로 Read하여 어떤 값을 출력하는지 확인만 하면 된다!

 

(좌)DIV0 (우)VALUE

 

(좌)NA (우)NAME
(좌)NULL (우)NULL
(좌)REF (우)FIELD

에러 값 숫자 값
#DIV/0! -2146826281
#FIELD! -2146826239
#VALUE! -2146826273
#N/A -2146826246
#NAME? -2146826259
#NULL! -2146826288
#NUM! -2146826252
#REF! -2146826265

 

결론은 다 다른 값이 나온다!

 

 

사실.. 시작하기 전에 이 내용에 대해서 정리된 게시물을 찾았다! 하지만.. 남이 정리해놓은 것도 좋지만 이왕이면 직접해보고 싶어서 그냥 해봤다! :)
stackoverflow.com/questions/2424718/how-to-know-if-a-cell-has-an-error-in-the-formula-in-c-sharp

 

How to know if a cell has an error in the formula in C#

In an Excel formula you can use =ISERR(A1) or =ISERROR(A1) In a VBA macro you can use IsError(sheet.Cells(1, 1)) But using a VSTO Excel Addin project I did not found similar function under the

stackoverflow.com

위 링크의 게시물에서 발췌한 내용이다.

'RPA' 카테고리의 다른 글

[UiPath] Chrome Alert Selector  (0) 2021.04.08
[UiPath] 파일 크기 구하기  (2) 2021.02.08
[UiPath] 정수 자릿수 제어  (3) 2020.11.09
[UiPath] Array에서 최빈값 구하기  (0) 2020.11.04
[UiPath] Selector 대소문자 무시하기  (1) 2020.10.14