2017-08-17 17 views
1

Trelloに新しいカードが追加されるたびにGoogleシートに新しい行を追加するオートメーションワークフロー(Zapier)があります。私はそれを使って部署の統計情報を追跡します。私は、日付フィールドをweeknumber、day、month、year ...のようなものに変換するいくつかの余分なフィールドを持っています。新しいシートが追加されたときにGoogleシート内の列を自動的に記入する

スプレッドシートに入力された新しい行を探して、他の列をプリセット式で自動入力するスクリプトを作成する必要があります。

レイアウト例:自動化を介して取り込ま

カラム:

a,b,d,e 

列は、スクリプトを介して投入します。

f,g,h,i,j,k 

似たようなスクリプトがありますが、上記の行から数式を自動入力することはできません。

注:各列の数式は、上記の行で手動で追加されています(今のところ)。理論的には、スクリプトは正しい式を使用するために上のセルを参照することができます。

注2:ARRAYFORMULAメソッドを使用することはできません.Zapierはその行に内容があると見なし、次の空の行にスキップするためです。

+0

変更を拒否したことをお詫び申し上げます。私はそのコピーに価値があると思った。しかし、Michelleが言うような数式を取得すれば、セル参照を保持するため、おそらくより良いアプローチになります。ありがとう、これは私のための学習経験でした。 – Cooper

+0

それを心配しないでください!チームラーニングの結果が得られます! – Jake

答えて

1

私はこれを行うと思います。

function fillInFGHIJK() 
{ 
    var ss=SpreadsheetApp.getActive(); 
    var sh=ss.getActiveSheet(); 
    var rg=sh.getDataRange(); 
    var vA=rg.getValues(); 
    for(var i=0;i<vA.length;i++) 
    { 
    if(!vA[i][5] && !vA[i][6] && !vA[i][7] && !vA[i][8] && !vA[i][9] && !vA[i][10]) 
    { 
     sh.getRange(i,6,1,6).copyTo(sh.getRange(i+1,6,1,6));//According to Michelle this will works better because the cell references change appropriately 
    } 
    } 
} 
+0

これは、前にセルの値を引っ張っています。式を引き出すことはできますか? – Jake

+0

答えを変更しました – Cooper

+1

このように数式を複製すると、セル参照はどうなりますか? sh.getRange(i、6,1,6).copyTo(sh.getRange(i + 1,6,1,6)) 'の代わりに' copyTo'メソッドを使うことをお勧めします。手動コピーと同じです。これは、数式で予想されることです。追加のボーナスとして、いくつかの列に値(式パラメーターとして使用される)が含まれる場合、それらもコピーされます。 – FTP

関連する問題