0

Je suis nouveau sur Google Scripts. J'ai une feuille de calcul avec une liste de dates dans la colonne A, et je veux que le script boucle cette colonne et mette un mois qui répond à une certaine spécification - disons, n'importe quel mois compris entre 5 et 10 - dans une variable.Dans Google Scripts, comment puis-je obtenir le mois de chaque cellule d'une colonne?

Voici mon code actuel:

function CalculateInterest(values) { 

    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getSheets()[0]; 
    var date_column = sheet.getRange("A3:A"); 

    var current_cell_date = 0; 
    var current_cell_month = 0; 

    for (var x = 3; x < 100; x++) { 
    current_cell_date = date_column.getCell(x, 1); 
    current_cell_month = month(current_cell_date); 
    } 

    return current_cell_month; 
} 

En ce moment, je suis coincé à obtenir simplement le numéro du mois de la date de la cellule x 1. (x étant la variable pour.) Ma feuille de calcul indique: ReferenceError: "month" n'est pas défini. (ligne 12).

Si je peux récupérer avec succès le nombre de mois de toute cellule donnée dans cette boucle, alors je sais que je peux comparer ce nombre dans une déclaration IF. Par exemple, je peux créer une variable qui contient le nombre de mois correspondant à ma spécification.

Merci!

Répondre

2

Try this ...

function CalculateInterest(values) { 

    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getSheets()[0]; 
    var date_column = sheet.getRange(3,1,sheet.getLastRow()-2).getValues(); 

    for(var i=0;i<date_column.length;i++){ 
    var currentDate = Utilities.formatDate(new Date(date_column[i][0]), "GMT", "MM"); 
    Logger.log(currentDate); 
    } 
} 
1

est ici une fonction qui obtient le mois entre Avril et Novembre non inclus pour les dates dans la colonne 1 et met le numéro du mois pour les dates dans la colonne 2.

function myFunction() { 
    var ss=SpreadsheetApp.getActive(); 
    var sht=ss.getSheetByName('Sheet13'); 
    var rng=sht.getDataRange(); 
    var vals=rng.getValues(); 
    for(var i=0;i<vals.length;i++) 
    { 
    if(new Date(vals[i][0]).getMonth()>4 && new Date(vals[i][0]).getMonth()<9) 
    { 
     vals[i][1]=new Date(vals[i][0]).getMonth()+1; 
    } 
    } 
    rng.setValues(vals); 
} 

Voici ma feuille de calcul après l'exécution.

enter image description here