! 제품 버전을 정확하게 입력해 주세요.
제품 버전이 정확하게 기재되어 있지 않은 경우,
최신 버전을 기준으로 안내 드리므로
더욱 빠르고 명확한 안내를 위해
제품 버전을 정확하게 입력해 주세요!

loadAsync로 xlsx 파일 불러올 시 VLOOKUP 함수 관련 오류 > Q&A | 토론

본문 바로가기

Wijmo

Q&A | 토론

PureJS loadAsync로 xlsx 파일 불러올 시 VLOOKUP 함수 관련 오류

페이지 정보

작성자 nxdev1 작성일 2024-02-07 15:46 조회 79회 댓글 0건
제품 버전 : 5.20221.842
컨트롤 이름 : wijmo.grid.sheet.FlexSheet

본문

Excel I/O | Grid | JavaScript Wijmo Demos (mescius.com) 


안녕하세요 위 문서를 참고하여 xlsx 파일을 loadAsync를 통해
import하는 기능을 구현했습니다.
그런데 다른 함수들을 잘 가져오는데
VLOOKUP 함수는 식 자체는 잘 가져오는데

결과값이 #SYNTAX로 출력됩니다.

(VLOOKUP 함수가 참고하는 다른 sheet들도 제대로 가져오는데 

결과값이 나오질 않습니다.)

원본 엑셀에서는 제대로 결과값을 출력하는데
wijmo flexSheet에서 VLOOKUP 함수를 제대로 적용하려면 어떻게 해야하는지 궁금합니다.

아래는 import를 시도했던 함수 예시입니다.
 

=VLOOKUP($C4,'TEOS Data'!$P6:$Z$9,3,)
=VLOOKUP($C5,'TEOS Data'!$P7:$Z$9,4,)

loadAsync로 불러왔을 때 결과이고


엑셀 프로그램으로 불러왔을 때 결과입니다.



 

  • 페이스북으로 공유
  • 트위터로  공유
  • 링크 복사
  • 카카오톡으로 보내기

댓글목록

등록된 댓글이 없습니다.

4 답변

PureJS Re: loadAsync로 xlsx 파일 불러올 시 VLOOKUP 함수 관련 오류

추천0 이 글을 추천하셨습니다 비추천0

페이지 정보

작성자 MESCIUS루시 작성일 2024-02-07 17:22 댓글 1건

본문

안녕하세요 메시어스입니다.


문의하신 현상의 경우 저희 쪽에서 테스트해보았을 때, Vlookup의 마지막 인자 값이 없는 상태에서 ","(쉼표)가 추가되었을 때 발생되는 것으로 확인되었습니다. 관련하여 아래와 같이 마지막 쉼표를 제거해보고 테스트해보시기 바랍니다.

 

from

=VLOOKUP($C4,'TEOS Data'!$P6:$Z$9,3,)

to

=VLOOKUP($C4,'TEOS Data'!$P6:$Z$9,3)


해당 현상에 대해서 추가적으로 본사 개발팀에 리포팅할 예정이며 업데이트가 있는대로 안내드리도록 하겠습니다.


감사합니다.

메시어스 드림

댓글목록

nxdev1님의 댓글

nxdev1 작성일

아래 FLEXSHEET 함수 오류 관련 추가 답변 확인 부탁 드립니다.
감사합니다.

PureJS Re: loadAsync로 xlsx 파일 불러올 시 VLOOKUP 함수 관련 오류

추천0 이 글을 추천하셨습니다 비추천0

페이지 정보

작성자 nxdev1 작성일 2024-02-14 10:18 댓글 1건

본문

안녕하세요 VLOOKUP 함수는 마지막 인수를 BOOLEAN 타입으로 두니 제대로 작동되는 것을 확인했습니다.

그런데 SLOPE 함수도 flexsheet에서 제대로 작동되지 않는 것을 확인했습니다.


35ed2f6518eec7cd40ab67e40ba249bf_1707873209_2409.png
위 사진처럼 B13 부분에 SLOPE 함수를 사용했는데
loadAsync할 때 식 자체는 제대로 가져오지만 #REF! 에러가 발생합니다.
(일반 엑셀 프로그램으로 실행할 때는 VLOOKUP 이슈처럼 제대로 작동합니다.)


아래는 B13에서 실제 사용한 함수입니다.
=ROUND(SLOPE(B4:B8,A4:A8), 3)
 

감사합니다.
 

댓글목록

MESCIUS루시님의 댓글

MESCIUS루시 작성일

안녕하세요 메시어스입니다.

추가로 문의하신 내용에 대해서는 확인 중에 있으며 업데이트가 되는대로 안내드리겠습니다.

감사합니다.
메시어스 드림

PureJS Re: loadAsync로 xlsx 파일 불러올 시 VLOOKUP 함수 관련 오류

추천0 이 글을 추천하셨습니다 비추천0

페이지 정보

작성자 MESCIUS루시 작성일 2024-02-16 10:33 댓글 2건

본문

안녕하세요 메시어스입니다.


1. VLookup이 포함된 엑셀 파일 가져오기시 에러 현상 문의

=> 사용중인 v5.20221.842의 경우, 수식이 제대로 평가되지 않는 현상이 있었고 해당 현상은 v5.20221.857부터 수정되었습니다. 따라서 2022 v1 버전을 사용하시는 경우, 마이너(세부) 버전을 v5.20221.857으로 업그레이드하여 아래 workaround 코드를 적용해보시기 권장드립니다.


본문 하단 샘플에서도 해당 코드가 포함되어 있어 Vlookup 함수가 정확하게 동작하는 것을 확인하실 수 있습니다.


let defaultFun = wijmo.grid.sheet.FlexSheet.prototype._evaluate;
wijmo.grid.sheet.FlexSheet.prototype._evaluate = function (formula, format, sheet, rowIndex, columnIndex) {
  return defaultFun.call(this, modifyExcelFormula(formula), format, sheet, rowIndex, columnIndex);
};

function modifyExcelFormula(formula) {
  // Remove extra commas if present between parameters
  return formula.replace(/,+(?=\s*(?:,|\)))/g, '');
}


2. FlexSheet의 SLOPE 함수 문의

=> 'FlexSheet' 컨트롤에서 'slope' 함수는 현재 지원되지 않으며 지원하는 함수 리스틑 아래 문서에서 확인할 수 있습니다.


- FlexSheet 수식 리스트


다만 workaround로 자체적으로 커스텀 'slope' 함수를 생성하고 이를 FlexSheet의 'addFunction' 메서드를 사용하여 시트에 추가해주시면 됩니다.


참고로, 첨부된 샘플에서 사용된 커스텀 'slope' 함수는 간단한 숫자 데이터만 처리하도록 만들어졌습니다. 다른 수식이나 데이터 유형과 함께 이 함수를 사용하면 예상치 못한 결과가 발생할 수 있으며 고객님의 데이터 요구에 맞게 이 함수를 수정하여 사용하시길 바랍니다.



다른 궁금한 점이 있으면 문의주시기 바랍니다.


감사합니다.

메시어스 드림


댓글목록

nxdev1님의 댓글

nxdev1 작성일

안녕하세요 SLOPE 함수를 구현하기 위해
SUMPRODUCT 엑셀 함수를 flexsheet에서 사용하려고 합니다.

그런데 
=SUMPRODUCT(B9-B4:B8, C9 -C4:C8) 이 함수를 사용하면 #REF! 를 반환합니다.
(일반 엑셀 프로그램으로 실행할 때는 제대로 작동합니다)

그래서 SUMPRODUCT 함수 자체가 SLOPE 함수처럼 지원 안 되나 생각했지만
FlexSheet 공식 (mescius.co.kr) 문서에도 있고
=SUMPRODUCT(B4:B8, C4:C8) 는 제대로 작동되는 것을 확인했습니다.

=SUMPRODUCT(B9-B4:B8, C9 -C4:C8) 을 사용하려면 어떻게 해야하는지

알려주시면 감사하겠습니다.

MESCIUS루시님의 댓글의 댓글

MESCIUS루시 작성일

안녕하세요 메시어스입니다.

문의하신 현상이 저희 쪽에서도 확인이 되어 본사 지원팀에 리포팅할 예정입니다. 
관련하여 업데이트가 되는대로 안내드리겠습니다.

감사합니다.
메시어스 드림 

PureJS Re: loadAsync로 xlsx 파일 불러올 시 VLOOKUP 함수 관련 오류

추천0 이 글을 추천하셨습니다 비추천0

페이지 정보

작성자 MESCIUS루시 작성일 2024-04-11 14:30 댓글 0건

본문

안녕하세요 메시어스입니다.


먼저 오랜기간 기다려주신 점 감사합니다.


문의하신 내용과 관련하여 본사 지원팀이 확인한 결과 FlexSheet가 제공하는 가져오기/내보내기 문제보다는 함수 자체에 있는 것으로 파악됩니다. Wijmo는 SUMPRODUCT, SUM 등과 같은 함수를 지원하고 있지만 매개변수의 범위 자체에 대한 작업은 FlexSheet에서 지원하고 있지 않습니다. 이러한 제한 사항으로 FlexSheet로 가져왔을 때 예상치 못한 결과를 나타낼 수 있습니다. 


원하는 결과를 가져오기 위해서는 범위에 대한 작업을 분리하고 나중에 계산하도록 변경처리해주셔야 합니다. 예를 들어 SUM(-B7*A2:A6)와 같은 함수를 우회적으로 SUM(A2:A6)*(-B7) 처럼 변경하셔야 합니다.


SUMPRODUCT와 관련하여 변경 예시를 공유드리오니 참고 부탁드립니다.

=SUMPRODUCT(A7-A2:A6, B7-B2:B6) --> =SUM(SUMPRODUCT(A2:A6,B2:B6), PRODUCT(COUNT(A2:A6),A7,B7), SUM(A2:A6)*(-B7), SUM(B2:B6)*(-A7))

=SUMPRODUCT(A7+A2:A6, B7+B2:B6) --> =SUM(SUMPRODUCT(A2:A6,B2:B6), PRODUCT(COUNT(A2:A6),A7,B7), SUM(A2:A6)*(B7), SUM(B2:B6)*(A7))

=SUMPRODUCT(A2:A6*A7, B2:B6*B7) --> =SUMPRODUCT(A2:A6, B2:B6)*A7*B7

=SUMPRODUCT(A2:A6/A7, B2:B6/B7) --> =SUMPRODUCT(A2:A6, B2:B6)/A7/B7

=SUMPRODUCT(A7/A2:A6, B7/B2:B6) 와 같은 수식에 대체 방안을 생성하는 것은 복잡해질 수 있습니다.


=SUMPRODUCT(A7/A2:A6, B7/B2:B6) --> =((1/(A2*B2))+(1/(A3*B3))+(1/(A4*B4))+(1/(A5*B5))+(1/(A6*B6)))*A7*B7


수식에서 각 열의 해당 쌍을 가져와야 하는데, 이 작업은 번거로울 수 있습니다. 그런 경우, 보조 열을 만드는 것을 제안드립니다. 예를 들어, '1/(cellA*cellB)' 작업을 미리 계산하기 위한 보조 열을 만들어서 전환해보시기 바랍니다.


감사합니다.

메시어스 드림

댓글목록

등록된 댓글이 없습니다.

메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
이메일 : sales-kor@mescius.com | 전화 : 1670-0583 | 경기도 과천시 과천대로 7길 33, 디테크타워 B동 1107호 메시어스(주) 대표자 : 허경명 | 사업자등록번호 : 123-84-00981 | 통신판매업신고번호 : 2013-경기안양-00331 ⓒ 2024 MESCIUS inc. All rights reserved.