2017-07-28 5 views
0

Googleフォームの情報がダンプされるGoogleシートがあります。 2つの列が日付範囲を作成し、範囲の各日付について新しい情報行を自動的に作成し、作成されたすべての行の元の行から他のすべての情報をコピーするようにしたいと思います。最終的には、範囲内のすべての日付にかかわらず、それが毎日ここでGoogleシートの日付範囲内の行を追加し、毎日元の行の情報をコピーする

Here is an example

答えて

0

のために存在する2日間または25とフォームを通じて収集されたすべての情報であることのそれ自身の行を持って行います機能ですあなたのためのトリック。私のスプレッドシートは実行後は下にあります。私はそれを開始データの最後に追加します。

function convertDateRangetoRows() 
{ 
    var ss=SpreadsheetApp.getActive(); 
    var sht=ss.getActiveSheet(); 
    var rng=sht.getDataRange(); 
    var rngA=rng.getValues(); 
    var rngB=[]; 
    var day=86400000; 
    rngB.push(rngA[0]); 
    for(var i=1;i<rngA.length;i++) 
    { 
    rngB.push(rngA[i]); 
    if(rngA[i][0] && rngA[i][1] && rngA[i][0]!=rngA[i][1]) 
    { 
     var dt0=new Date(rngA[i][0]); 
     var dt1=new Date(rngA[i][1]); 
     var days=(dt1.valueOf()-dt0.valueOf())/day; 
     var dt=dt0.valueOf(); 
     for(j=0;j<days;j++) 
     { 
     dt+=day; 
     rngB.push([Utilities.formatDate(new Date(dt), Session.getScriptTimeZone(), "MM/dd/yyyy"),'',rngA[i][2],rngA[i][3],rngA[i][4]]); 
     } 
    } 
    var intermediate='nothing'; 
    } 
    var rngb=sht.getRange(sht.getLastRow()+1,1,rngB.length,rngB[0].length); 
    rngb.setValues(rngB); 
var end='the end is near'; 
} 

enter image description here

+0

私はあなたの助けに感謝。私はサンプルシートを与えれば、式/関数/スクリプトを自分の必要性に合わせて適応させることができると思ったが、まだ間違っている。私の実際のシートでは、「旅行の日」はC列、「戻り日」はG列です。別の問題は、フォームから新しいデータが入ったときに、次の行が自動的に上書きされることです。日付の範囲によってトリガーされた行をスプレッドシートの下部に2000行から追加する方法はありますか?すべてのデータを並べ替える別のシートがあります。ありがとうございました –

+0

私はあなたが次にしたいものの説明とともにデータを見る必要があります。別の質問に進むことができます。これが完了したことを確認してください。次の例でお手伝いします。 – Cooper

+0

私は基本的に同じタイトルの別の投稿を作成し、そのシートのコピーをリンクしました。皆さんのお手伝いをありがとうございます。 –

関連する問題