2011-12-06 9 views
0

私はGoogleスプレッドシートを2枚の別々のシートで持っています。最初のものは名前とデータの大きなリストであり、2番目のものは1番目のシートのすべてのデータのソートされたリスト(姓でソートされている)です。 1つの問題を除いて、ほとんどの部分は正常に動作します無視された行でGoogleドキュメントのソートされたスプレッドシートをスクリプト化する

=sort(sheet1!A:L, 2, TRUE) 

:ここで私はセカンドシートを定義しています、現在の方法でシート1に、最初の行には、「ファーストネーム」で構成され、ヘッダー行です、 "Last Name"、 "Phone"などがあります。その式をsheet2に使用すると、その行は残りの部分でソートされます。

並べ替えがsheet1の最初の行を無視し、同じ動作で列AからLを並べ替えるように割り当てを変更するにはどうすればよいですか?エントリを迅速に追加したり削除したりできるため、長さを手動で指定することは不可能です。

答えて

2

他の範囲定義を使用することができます。最初のセルを指定しますが、最後は指定しません。例えばL:

A1: =ArrayFormula(Sheet1!A1:L1) 
A2: =Sort(Sheet1!A2:L, 2, TRUE) 

A1の式は、ヘッダーだけをコピーすることです:) A2で
、あなたはA2でを置くことによって、あなたは(前後2行)のデータのみを望んでいることを指定します。

1

ここには、第1列に基づいて自動ソートされ、ヘッダー行が仮定される汎用スクリプトがあります。

スクリプトを作成するには:[ツール]メニューで

を - >スクリプトエディタ... 空のコードウィンドウで、セルが編集されるたびに自動的に実行され、次のコードを貼り付け:

/** 
* Automatically sorts the 1st column (not the header row) Ascending. 
*/ 
function onEdit(event){ 
    var sheet = event.source.getActiveSheet(); 
    var editedCell = sheet.getActiveCell(); 

    var columnToSortBy = 1; 
    var tableRange = "A2:T99"; // What to sort. 

    if(editedCell.getColumn() == columnToSortBy){ 
    var range = sheet.getRange(tableRange); 
    range.sort({ column : columnToSortBy, ascending: true }); 
    } 
} 
+0

私はPHPスクリプトから行を追加しても? –

+0

申し訳ありませんが、わかりません。 – grokster

関連する問題