2017-08-21 15 views
2

Googleシートからデータを取得するコードがあります。今日の日付と等しい日付のためにこのデータをループします。私はそれらの値を別のシートに入れたいと思う。私はおそらく、2Dアレイがどのように正確に動作するかを理解していないでしょう...以下はこれまでのところです。私は今日のエントリーだけが動いていることを知るために私のループを知っています。私が間違って何をしているかわからない。どんな助けでも大歓迎です。 n変数は、配列内の正しい行数を返します。ただし、行と列の数が正しくありません。 FROMデータを読み取っているシートには4列あります。私はそれらの3つだけ必要があります。Googleスクリプト/ Javascriptの2D配列の問題

var ss = SpreadsheetApp.getActive(); 
var sheet = ss.getSheetByName('Edit Info'); 
var rows = sheet.getDataRange(); 
var values = rows.getValues(); 

Logger.log(values.length) 
Logger.log(values[0].length) 

var todayValues = []; 
var todValues = ""; 
var rowValues = []; 

var today = new Date(); 
var dd = today.getDate(); 
var mm = today.getMonth()+1; //January is 0! 
var yyyy = today.getFullYear(); 

if(dd<10) { 
dd = '0'+dd 
} 

if(mm<10) { 
mm = '0'+mm 
} 

today = mm + "/" + dd + "/" + yyyy; 
Logger.log("Today: " + today) 
var n = 1; 
for(var i = 1; i < values.length; i++) { 
var formattedDate = values[i][0]; 
var newDate = Utilities.formatDate(new Date(formattedDate), "GMT-6", 
"MM/dd/yyyy"); 
//Logger.log("NewDate: "+newDate) 
if(newDate == today){ 

    //todValues += values[j][0] + "," + values[i][3] + "," + values[i][2]; 
    todayValues.push(values[i][0], values[i][3], values[i][2]); 
    n = n + 1 
    Logger.log(values[i][0] + ", " + values[i][3] + ", " + values[i][2]) 
} 
} 

Logger.log("N Row Count: " + n) //How many times the date was actually 
found 
Logger.log("Rows: " + todayValues.length) 
Logger.log ("Columns: " + todayValues[0].length) 

答えて

0

スクリプトエディタで[デバッグ]オプションを使用しましたか。あなたが持っていない場合には、Troubleshooting pageを参照してください。ログを使用するよりも簡単です。

これを実行すると、値に保存された取得データがtodayValuesに保存されたデータと異なることがわかります。簡略化すると、次のようになります。

values [["A", "B", "C"],["D", "E", "F"]] 
todayValues ["A", "B", "C","D", "E", "F"] 

追加の角括弧に値が含まれていることに注意してください。

あなたがループ内のコードが

todayValues.push([values[i][0], values[i][3], values[i][2]]); 
+0

ありがとうを読みたいです!それがトリックでした。それは私のコードを別のシートワークにも配置しました。 :) –

関連する問題