앱 스크립트를 통해 Google 스프레드 시트에서 쿼리 수식의 셀 값을 참조하는 것이 작동하지 않는 것 같습니다.

Nat West

Apps Script를 사용하여 셀의 값을 다른 셀로 복사하려고합니다. 소스 셀의 값은 쿼리 수식으로 생성됩니다.

=sum(iferror(query(ExportDrop!$A$2:$AJ,"select AJ where A matches '" & join("|",C$3:C) & "' AND AH = '" & A3 & "'",0),0))

소스 시트는이 쿼리 수식의 출력을 성공적이고 올바르게 표시합니다.

스크립트 내에서 작업 할 때 다음 코드는 시트를 볼 때와 다른 영 (0)을 생성합니다.

cellval = sourceSheet.getRange("B3").getValue();
SpreadsheetApp.getUi().alert(cellval); return;

setActiveRangeSelection (), copyValuesToRange (), copyTo (, {contentsOnly : true}) 등을 사용하여 getDisplayValue (), getValue (), getValues ​​() (범위 참조에 해당 변경 포함)를 시도했습니다.

Google 스프레드 시트의 쿼리 기능의 버그입니까? 쿼리 기능이 포함 된 원본 시트를 PDF로 인쇄 할 때도 같은 일이 발생하기 때문에 궁금합니다. 결과 PDF는 0 값을 표시합니다. 그래서 그것은 내 스크립트의 문제가 아니라 소스 시트의 문제와 더 비슷합니다. 인쇄 된 "간단한"쿼리 공식 시트의 테스트는 잘 작동합니다.

내가 도대체 ​​뭘 잘못하고있는 겁니까?

편집하다:

예 : https://docs.google.com/spreadsheets/d/1eHHV-TJhC_aVNNLspx3suKhrthtcjRfIcZR0dWdTvOI

Sheet2를 인쇄 해보십시오. 첫 번째 PDF "미리보기"는 괜찮아 보이지만 내보내기 후 PDF를 열면 합계 값이 모두 0입니다.

코드 캠퍼

답변 : Google 스프레드 시트 쿼리 기능에는 손상되거나 불완전한 기능이 광고되었습니다.

예 : matches로컬에서 실행되고 Google 서버에서 동기화 format되지 않아 동기화 문제가 발생 하지 않습니다. 부울은 전혀 작동하지 않습니다.

해결 방법 : OR대신 일련의matches

=sum(iferror(query(Sheet1!$A$2:C,"select C where (A = " &join(" OR A = ",filter(C$1:C,C$1:C<>"")) & ") AND B = '" & A1 & "'",0),0))

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관