Ajouter la valeur de la cellule d'une colonne à une cellule spécifique, sur la base des notes de la cellule

0

La question

Je jouais avec les Apps Script pour essayer et d'ajouter la valeur d'une cellule dans une colonne spécifique (C4:C14) dans ma feuille de calcul à la cellule C15 quand il y a une Note qui dit: "payé"

J'ai lu la documentation de la Classe de Gamme et a été en mesure d'obtenir les valeurs des notes, ainsi que de la valeur des cellules dans la plage de cellules (C4:C14), mais je suis incapable de définir la somme sur la base du contenu de l'Insert Noter sur des Feuilles de calcul Google.

Voici le code que j'ai travaillé jusqu'à présent, ainsi que la capture d'écran de ma feuille. 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

La meilleure réponse

2

Ici, vous allez aussi je suggère de voir si vos blocs sont en train d'être exécuté ou non, par exemple, la boucle for n'a pas été appelé en raison de la mauvaise variable. Aussi rappelez-vous toujours des feuilles de calcul Google toujours revenir Tableau 2d.

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

Plutôt à des fins éducatives voici une "fonctionnelle" de la solution:

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

Dans d'autres langues

Cette page est dans d'autres langues

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