0

私はJavaScriptとGoogleSpeardsheetを初めて使用しますが、助けが必要です。私はグーグルスピアードシートにテーブルを持っています、そして列Lに-私は日付を持っています。表は、古いものから新しいものへと日付順に並べ替えられます。

ここで、テーブルに存在する最後の(=最新の)日付を返す2つの関数(最初の関数)が必要です。2番目-これにより、最新の日付がテーブルに表示される最初の行が返されます。

最初の関数(FindLastDateと呼ばれる)を作成することに成功しましたが、2番目の関数に問題があります。私のコードを見て、アドバイスをください:

   function TheFirstRowWithThisDate() {
    var sheet = SpreadsheetApp.getActiveSheet();
    var dataRange = sheet.getDataRange().getValues();
    var i = 0;
    var a = 0;
    d = FindLastDate();
    while (a==0) {
    if  (dataRange[d][11]==dataRange[i][11])
    { var a=i
    }
    i=i+1;
    }
    return a 
    }
4

1 に答える 1

0

日付は、スプレッドシートセルのフォーマット、スプレッドシートのタイムゾーン、およびスクリプトがすべて役割を果たすなど、多くの理由で処理が難しいものです。

したがって、あなたの要件を考えると、私は日付を難しい方法で解析します。

function TheFirstRowWithThisDate() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var dataRange = sheet.getDataRange().getValues();
  var d = FindLastDate(); 
  var lastDate = new Date(d); 
  for( var i = 0 ; i < dataRange.length ; i++){
    var tempDate = new Date(dataRange[i][11]); // Col L
    if(tempDate.getDate() == lastDate.getDate() && 
       tempDate.getMonth() == lastDate.getMonth() && 
       tempDate.getFullYear() == lastDate.getFullYear() ) { 
         return (i+1); // Return the row number which is 1 more than the index 
    }
  }
  return 0;
}
于 2012-08-15T06:01:16.037 に答える