2016-05-12 1 views
0

私は非常に大きなデータシートを持っており、異なるプロジェクト(全部で16個)にコメントが適用されています。各コメントのステータスは、アクティブ、確認済み、キャンセル済み、空白(該当しない場合)のようにプロジェクトに適用されます。ソースとターゲットシートの動的リンク

シートを使用しているユーザーが多い場合、ソースシート内のフィルタを使用してステータスを更新することは困難です。同時に異なるフィルタを適用します。

最も良い方法は、ソースシートのすべてのデータを多数のターゲットシート(プロジェクトごとに1つ)にプルし、プロジェクトに応じてフィルタを適用することで、ユーザーはターゲットシートのステータスを更新できます。私の問題は、ターゲットシートからソースシートに新しい更新ステータスを取得する方法です。

ソースシートで何かを変更したり追加したりするたびに、すべてのターゲットシートを自動的に更新するスクリプトが見つかりましたが、ターゲットシート(プロジェクトシート)のステータスを変更するときにもソースシートを更新する必要があります。フォームを通じてユーザーからのコメントを受けて、私はそれらを手動でカットアンドペースト「新しいフォームの回答」シートに

https://docs.google.com/spreadsheets/d/1h0mpPo2nl9AoCF-hJDjMaU3sZg-qBX4dat7Ig4poAJo/edit?usp=sharing

:私のソースシートのリンクは下記を参照してください

function getdata() { 
    var files = DriveApp.getFolderById(""folder key with target sheets"").getFiles() 
    while (files.hasNext()) { 
     var file = files.next(); 
     var shoot = SpreadsheetApp.openById(file.getId()); 

     var sourcesheet = SpreadsheetApp.getActive().getSheetByName(""source sheet name""); 
     var sourcerange = sourcesheet.getRange('A:AE'); 
     var sourcevalues = sourcerange.getValues(); 

    var destsheet = shoot.getSheetByName('target sheets name same for all'); 
     var destrange = destsheet.getRange('A:AE'); 
    destrange.setValues(sourcevalues);   

:下のスクリプトを参照してください。 「送信済み」のシートを送信してください。

+0

私が見る限り、ここに実際の質問はないようですね? – halfer

答えて

0

1つのシートにプロジェクトごとにfilter viewsを作成してください。フィルタビューは、そのビューを使用している人にのみ適用され、他のビューに対しては変更しません。あなたの質問から、これは同期スクリプトよりも良い解決策かもしれません。

質問に答えるには、それぞれのプロジェクトシートのonEdit eventが逆の更新を管理できると尋ねました。

function onEdit(event){ 
    var range = event.range; 
    if(range.getSheet().getName() == "Sheet1" && range.getColumn() > 1 && range.getRow() > 1){//example conditionals to limit the action to exclude headers or other static data could be changed to work specific cells or ranges 
    var mainsheet = SpreadsheetApp.openByUrl("main spreadsheet URL").getSheetByName("destination sheet"); 
    var dataA1 = range.getA1Notation(); 
    range.copyTo(mainsheet.getRange(dataA1)); 

    } 
} 

これは簡単なトリガーであり、ユーザーにはメインシートへの編集アクセス権が必要です。アクセス権を与えたくない場合は、代わりにinstallable triggerを使用することができます。

関連する問題