1

Google フォームを使用して、日付スタンプ ZA で自動的に並べ替えるスプレッドシートを作成しています。並べ替えは、誰かがフォームに入力するたびにトリガーされます。

その方法は次のとおりだと思います。

  1. スプレッドシートに「フォームの回答のコピー」があるかどうか尋ねます...
    • はいの場合、すべてのコンテンツをクリアします...
    • そうしないと...
  2. スプレッドシートを「フォーム回答のコピー」にコピー...
  3. タイムスタンプでソート

以下は、私がこれまでに石畳にしたものです。応答が最初に記録されたときにのみ機能します。私はコーダーではないので、助けていただければ幸いです。誰かが基本的な構文のコマンドのリストを教えてくれたら、私は感謝します.

function CopySheet() {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var msheet = ss.getSheetByName("Form Responses"); 
    msheet.copyTo(ss);

    var CopySheet = ss.getSheetByName("Copy of Form Responses"); 
    CopySheet.sort(1,   false); // here 1 is for column no. 1 that 
               // is "Column A" and true is for ascending, make it 
               // false if you want descending.
};
4

1 に答える 1

1

QUERY()コピーシートで使用することにより、スクリプトなしでこれを実現できます。たとえば、この関数をコピー シートのセル A1 に配置し、フォームの回答スプレッドシートのキーを置き換えると、逆タイムスタンプで並べ替えられた回答のコピーが作成されます。

=Query(ImportRange(spreadsheet_key,"Form Responses!A:Z"), "select * order by Col1 desc")

このデータは定期的に (約 5 分) 更新されるため、新しいフォームの送信が反映されますが、リアルタイムではありません。

注:ImportRange()のソース データとして使用する場合Query、表記を使用してクエリ文字列内の列を参照する必要がありますColN

または、フォーム送信を受信するスプレッドシートでフォーム送信トリガー関数を作成し、並べ替えられたフォーム応答をコピー シートにコピーすることもできます。次の関数はそれを行います。スプレッドシート フォーム送信イベントのトリガー関数として設定する必要があります。このような関数をテストする方法については、「GAS でトリガー関数をテストするにはどうすればよいですか?」を参照してください。.

function copyFormSubmissions(e) {
  var sourceSheet = e.range.getSheet();
  var data = sourceSheet.getDataRange().getValues();
  var headers = data.splice(0,1)[0]; // remove headers from data
  data.sort(reverseTimestampOrder);  // Sort 2d array
  data.splice(0,0,headers);          // replace headers

  var destId = "--copy-sheet-ID--";
  var destSheet = SpreadsheetApp.openById(destId).getSheetByName('Sheet1');
  destSheet.clear();
  destSheet.getRange(1,1,data.length,data[0].length).setValues(data);
};

function reverseTimestampOrder(a,b) {
  // Timestamp is in first (zero-th) column
  return (b[0]-a[0]);
}

誰かが基本的な構文のコマンドのリストを教えてくれたら、私は感謝します.

Google Apps Script API のクラスとメソッドのリファレンスはこちらです。学習している場合は、チュートリアル (同じ場所) を試してください。なんらかの形式の e ラーニングを通じて Javascript に慣れることをお勧めします。これは、Google Apps Script との関連性が非常に高いものです。

于 2013-12-10T04:01:03.620 に答える