Pridať bunky hodnota stĺpca na konkrétnu bunku na základe poznámky bunky

0

Otázka

Hrala som sa s Aplikácie Skript a skúste a pridať hodnotu bunky v stĺpci (C4:C14) v mojom tabuľku bunky C15, keď je Vedomie, že vraví: "zaplatené"

Čítal som cez dokumentáciu Triedy Rozsah a bol schopný sa dostať hodnoty poznámky, rovnako ako hodnoty z bunky do bunky rozsah (C4:C14), ale nie som schopný nastaviť súčet založené na obsahu Vložiť Poznámku na Google Listy.

Tu je kód pracoval som tak ďaleko, ako aj film môj list. enter image description here

function getPaid () {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];

  var range = sheet.getRange("C4:C14");
  var rangeval = range.getValues();

  Logger.log(rangeval);
  var comments = range.getNotes();

  for (var i = 0; i > range.length; i++) {
    if ( range.getNotes()[i] === "paid" ) {
      sheet.getRange('C15').setValue(0 + rangeval[i]);
      
    }
  Logger.log(range.getNotes[i]);
  }
  
  Logger.log(comments);

}
google-apps-script google-sheets
2021-11-24 06:23:43
2

Najlepšiu odpoveď

2

Tu môžete ísť tiež navrhoval by som, aby videli, či blokov sú vykonané, alebo nie, napríklad, že vaša slučky pre nebol, sa nazývajú kvôli zlým premennej. Tiež majte vždy na pamäti, Google listy vždy vrátiť 2d Pole.

function getPaid () {
      var ss = SpreadsheetApp.getActiveSpreadsheet();
      var sheet = ss.getSheets()[0];
    
      var range = sheet.getRange("C4:C14");
      var rangeval = range.getValues();
      var comments = range.getNotes();
      var sum = 0;
      for (var i = 0; i < rangeval.length; i++) {
       
        if ( comments[i][0] === "paid" ) {
    
          sum = sum+rangeval[i][0];
        }
      }
      sheet.getRange('C15').setValue(sum)
    
    }
2021-11-24 12:22:28
0

Skôr pre vzdelávacie účely, tu je funkčná riešenie:

function myFunction() {
  var sh = SpreadsheetApp.getActiveSheet();

  var range = sh.getRange('c4:c14'); 
  var data  = range.getValues().flat(); // get all data in one step
  var notes = range.getNotes().flat();  // get all notes in one step

  var paid = data.filter((_,i) => notes[i] === 'paid'); // get paid values
  var sum  = paid.reduce((a,b) => a+b);                 // sum of the array

  sh.getRange('c15').setValue(sum); // set the sum into the cell C15
}
2021-11-24 07:20:46

V iných jazykoch

Táto stránka je v iných jazykoch

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................