Google Apps Script에서 null 값 반환

Calvin Gaunce

아래 함수는 두 번째 및 세 번째 'for 루프'를 통과 할 때 null 값을 반환하며 이유를 알 수 없습니다. 'i = start'를 포함하는 for 루프는 'decisionPoints'변수를 반복하고 첫 번째 열의 값을 기반으로 데이터를 반환합니다. 'decisionPoints'의 처음 몇 행은 첫 번째 열에 '1'이 있습니다. 다음 몇 행에는 첫 번째 열에 '2'가 있고 다음 몇 행에는 '3'이 있습니다. 루프가 '2'와 '3'을 검색 할 때 찾고있는 첫 번째 값을 포함하는 행 앞의 각 행에 대해 null 값을 반환합니다. 따라서 '2'를 검색하면 '1'을 포함하는 이전 행에 대해 세 개의 null 값이 표시됩니다. '3'을 검색하면 '1'또는 '2'를 포함하는 이전 행에 대해 6 개의 null 값이 표시됩니다.

누구든지 이유를 설명 할 수 있습니까?

var loBuild = function(loNumber,category){
      var lo = [],
          spreadsheet = SpreadsheetApp.getActiveSpreadsheet(), 
          decisionPointsSheet = spreadsheet.getSheetByName("Decision Points"),   
          lastColumn = decisionPointsSheet.getLastColumn(),
          lastDecisionPoint = decisionPointsSheet.getLastRow(), 
          decisionPoints = decisionPointsSheet.getRange(1,1,lastDecisionPoint,lastColumn).getValues(),
          count = 0,
          loColumn = [];
      decisionPoints.shift(); 
      for(i in decisionPoints){
        loColumn.push(decisionPoints[i][0]);
        if(decisionPoints[i][0] === loNumber){
          count++;
        }
      }
    var start = loColumn.indexOf(loNumber);
    for(i = start; i < count+start; i++){
        lo[i] = [];
        var dp = decisionPoints[i][1];
        var dpLabel = decisionPoints[i][3];
        for(j = 0; j < lastColumn; j++){
          switch(j){
            case 0:
              lo[i][j] = dp;
              break;
            case 1:
              lo[i][j] = "=countifs('" + dpLabel + "'!F:F,\"" + category + "\")"
              break;
            case 2:
              lo[i][j] = "=countifs('" + dpLabel + "'!F:F,\"FCC\")"
              break;
          }
        }
      }
      return(lo);
    }
azawaza
for(i = start; i < count+start; i++){
        lo[i] = [];

경우 start=3, 당신은 당신의 채우기 시작하기 lo(LO [3]) 4 요소에서 배열을 - 따라서 LO [0] 보라 [1] 보라 [2]가 자동으로 널 (null) 값을 사용하여 배열에 붙을 배열은 0을 기반으로하기 때문에 .

기존 시트 행을 대체 / 업데이트하기 위해 시트 행 값 배열을 만들려고하는 것 같습니다. 이 경우 lo행 인덱스 참조와 새 값 배열을 포함하는 객체 배열 을 만드는 것이 좋습니다 .

중요 참고 : 아래 코드는 시트의 데이터가 첫 번째 열 (loNumber 값)을 기준으로 정렬되었다고 가정합니다. 이 가정은 게시 된 코드 샘플, 특히 count변수 설정 방법을 기반으로합니다 (시트가 loNumber 열로 정렬되지 않은 경우 코드가 잘못된 행을 반복 함).

lo = [];
...
var start = loColumn.indexOf(loNumber);
    for(i = start; i < count+start; i++){
        var objRow = {rowIndex: i, rowValues: []}; // row object
        var dp = decisionPoints[i][1];
        var dpLabel = decisionPoints[i][3];
        for(j = 0; j < lastColumn; j++){
          switch(j){
            case 0:
              objRow.rowValues[j] = dp;
              break;
            case 1:
              objRow.rowValues[j] = "=countifs('" + dpLabel + "'!F:F,\"" + category + "\")"
              break;
            case 2:
              objRow.rowValues[j] = "=countifs('" + dpLabel + "'!F:F,\"FCC\")"
              break;
            default:
              objRow.rowValues[j] = ""; // if j is > 2
          }
        }
        lo.push(objRow); // push row object into lo array
      }
      return(lo);

예를 들어 start=3가정 count=2하면 다음 lo배열 을 얻을 수 있습니다 .

[
  {rowIndex:3, rowValues:[row3_col0_value, row3_col1_formula, row3_col2_formula]}, 
  {rowIndex:4, rowValues:[row4_col0_value, row4_col1_formula, row4_col2_formula]}
]

그런 다음 lo해당 시트 행에서 array 및 setValues ​​() 를 반복 할 수 있습니다 .

for ( var i=0; i<lo.length; i++ ) {
  var rowData = lo[i];
  sheet
    .getRange( rowData.rowIndex-1, 1, 1, rowData.rowValues.length )
    .setValues( [rowData.rowValues] );
}

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

HTMLService / Google Apps Script에서 날짜 선택기를 사용하여 값 반환

분류에서Dev

Google Apps Script에서 배열 반환

분류에서Dev

Google Apps Script getSheetByName이 null을 반환합니다.

분류에서Dev

Google Apps Script에서 키 : 값 쌍을 호출하면 값 대신 '정의되지 않음'이 반환됩니다.

분류에서Dev

Google Apps Script는 배열 값을 반환하고 자바 스크립트 함수에서 사용합니다.

분류에서Dev

Google Script Apps에서 셀 값 바꾸기

분류에서Dev

ajax에서 Google Apps Script로 값 전달

분류에서Dev

Google Apps Script에서 문자열 길이 반환

분류에서Dev

FolderIterator 및 FileIterator에서 반복-Google Apps Script

분류에서Dev

메서드 반환 null 값

분류에서Dev

Google Apps Script : API 응답에서 특정 개체를 선택하려고 할 때 "null"을 반환하지만 원래 응답에서 볼 수 있습니다.

분류에서Dev

Google 설문지-ID로 항목 가져 오기가 null을 반환합니다.-Google Apps Script

분류에서Dev

Google Apps Script 잘못된 값

분류에서Dev

circledByCount에서 NULL 반환 (Google+ API)

분류에서Dev

배열 Google Apps Script에서 중복 값 제거

분류에서Dev

배열 Google Apps Script에서 중복 값 제거

분류에서Dev

Google Apps Script의 스프레드 시트에서 JSON 값 전달

분류에서Dev

Google Apps Script는 배열에서 값을 찾습니다.

분류에서Dev

Ajax : null 값 반환

분류에서Dev

FirebaseObjectObservable 반환 null 값

분류에서Dev

Google App Script : "Apps Script Web App"Web App Starter에서 "TypeError : Cannot read property 'parameter'of undefined doGet"오류를 반환합니다.

분류에서Dev

Apps Script getEventById ()가 null을 반환합니다.

분류에서Dev

Google Apps Script에서 재설정 기능 반복

분류에서Dev

Google Apps Script를 사용하여 Google 스프레드 시트의 값을 기반으로 날짜 선택기에서 날짜를 사용 중지합니다.

분류에서Dev

기준을 충족하는 특정 행 반환-Google Apps Script

분류에서Dev

Google Apps Script / URLFetchApp 및 반환 된 데이터 사용

분류에서Dev

아무것도 반환하지 않는 Google Apps Script Regex

분류에서Dev

동적 SQL은 JDBC 및 MySQL을 사용하는 Google Apps Script에서 '구문 오류'를 반환합니다.

분류에서Dev

Google 스프레드 시트의 날짜를 Google Apps Script와 비교하면 부정확 한 부울 값이 반환됩니다.

Related 관련 기사

  1. 1

    HTMLService / Google Apps Script에서 날짜 선택기를 사용하여 값 반환

  2. 2

    Google Apps Script에서 배열 반환

  3. 3

    Google Apps Script getSheetByName이 null을 반환합니다.

  4. 4

    Google Apps Script에서 키 : 값 쌍을 호출하면 값 대신 '정의되지 않음'이 반환됩니다.

  5. 5

    Google Apps Script는 배열 값을 반환하고 자바 스크립트 함수에서 사용합니다.

  6. 6

    Google Script Apps에서 셀 값 바꾸기

  7. 7

    ajax에서 Google Apps Script로 값 전달

  8. 8

    Google Apps Script에서 문자열 길이 반환

  9. 9

    FolderIterator 및 FileIterator에서 반복-Google Apps Script

  10. 10

    메서드 반환 null 값

  11. 11

    Google Apps Script : API 응답에서 특정 개체를 선택하려고 할 때 "null"을 반환하지만 원래 응답에서 볼 수 있습니다.

  12. 12

    Google 설문지-ID로 항목 가져 오기가 null을 반환합니다.-Google Apps Script

  13. 13

    Google Apps Script 잘못된 값

  14. 14

    circledByCount에서 NULL 반환 (Google+ API)

  15. 15

    배열 Google Apps Script에서 중복 값 제거

  16. 16

    배열 Google Apps Script에서 중복 값 제거

  17. 17

    Google Apps Script의 스프레드 시트에서 JSON 값 전달

  18. 18

    Google Apps Script는 배열에서 값을 찾습니다.

  19. 19

    Ajax : null 값 반환

  20. 20

    FirebaseObjectObservable 반환 null 값

  21. 21

    Google App Script : "Apps Script Web App"Web App Starter에서 "TypeError : Cannot read property 'parameter'of undefined doGet"오류를 반환합니다.

  22. 22

    Apps Script getEventById ()가 null을 반환합니다.

  23. 23

    Google Apps Script에서 재설정 기능 반복

  24. 24

    Google Apps Script를 사용하여 Google 스프레드 시트의 값을 기반으로 날짜 선택기에서 날짜를 사용 중지합니다.

  25. 25

    기준을 충족하는 특정 행 반환-Google Apps Script

  26. 26

    Google Apps Script / URLFetchApp 및 반환 된 데이터 사용

  27. 27

    아무것도 반환하지 않는 Google Apps Script Regex

  28. 28

    동적 SQL은 JDBC 및 MySQL을 사용하는 Google Apps Script에서 '구문 오류'를 반환합니다.

  29. 29

    Google 스프레드 시트의 날짜를 Google Apps Script와 비교하면 부정확 한 부울 값이 반환됩니다.

뜨겁다태그

보관