Google Spreadsheet conditional on three cells

前端 未结 1 703
南旧
南旧 2021-01-27 12:49

I\'ve been trying to implement a conditional on my spreadsheet, basically a check-sheet with three conditional cells with \"Yes\" or \"No\" in them. All I want to achieve (usin

相关标签:
1条回答
  • 2021-01-27 13:02

    Since the cells can be edited individually, your onEdit will always need to check all of your conditional cells' values, and write the timestamp only when all are "Yes".

    function onEdit(event) {
      var conditionalCells = [ "B1", "B2", "B3" ];  // Array of monitored conditionals
      var inList = false;                           // assume edit was outside of the conditionals
      var allYes = true;                            // and that all values are "Yes".
      var sheet = event.source;  // Sheet that was edited
      var cell = event.range.getA1Notation();  // get range description
      // Loop through all conditionals checking their contents.
      // Verify that the edit that triggered onEdit() was in one
      // of our conditional cells, setting inList true if it was.
      for (var i = 0; i < conditionalCells.length && allYes; i++) {
        if (cell == conditionalCells[i]) inList = true;
        allYes = (sheet.getRange(conditionalCells[i]).getValue() == "Yes");
      };
      // If this was our final Yes, record the date.
      // By validating inList, we ensure we record only the first time
      // all conditionals are "Yes".
      if (inList && allYes) sheet.getRange("C1").setValue(new Date());
    }
    
    0 讨论(0)
提交回复
热议问题