このツールでできること
表のソートツールは、貼り付けた表の行を、選んだ1つの列をキーとして並べ替えます。特定の国や制度に依存しない、汎用的なデータ処理ツールです。1行に1レコードずつ入力(または貼り付け)し、列はカンマまたはタブで区切ります。並べ替えたい列の番号と順序を指定するだけで、行を並べ替えた表が出力されます。各行は他の列もまとめて移動するため、データの対応関係は崩れません。
使い方
テキストボックスに、1行につき1レコードずつ表を入力します。ソート対象の列番号には、並べ替えの基準にしたい列を1始まりの番号で指定します(先頭の列が1列目)。並び順は小さい順(昇順)か大きい順(降順)から選びます。列番号に0を入力すると並べ替えは行わず、代わりに各行の数値セルを合計した「行合計列」が末尾に追加されます。昇順の並べ替えは次のように表されます。
$$\text{SortedTable} = \operatorname{sort}_{\;\uparrow}\Big(\text{Rows},\; \text{col} = \text{Column No.}\Big)$$
降順の場合は次のようになります。
$$\text{SortedTable} = \operatorname{sort}_{\;\downarrow}\Big(\text{Rows},\; \text{col} = \text{Column No.}\Big)$$
列番号に \(0\) を指定したときの行合計は次の式で求められます。
$$\text{Total}_{\text{row }i} = \sum_{j} \text{numeric cells}_{ij}\qquad(\text{Column No.} = 0)$$
並べ替えの仕組み
各行のソートキーは、\(c - 1\) 番目の位置にあるセルです(\(c\) は1始まりの列番号のため)。セルが数値として認識できる場合は数値として比較し、そうでない場合は文字列として比較します。数値と文字が混在する列では、数値が文字の前に配置されます。並べ替えには安定ソートを用いるため、同じキーを持つ行は元の順序を保ちます。空欄のセルは最小値として扱われ、昇順では先頭に来ます。
具体例
「名前・スコア・年齢」の3列からなる次の3行を例にします。
Alice, 80, 30
Bob, 95, 22
Carol, 88, 41
2列目(スコア)を基準に昇順で並べ替えると、キーは \(80, 88, 95\) となり、出力は次のようになります。
Alice, 80, 30
Carol, 88, 41
Bob, 95, 22
降順に切り替えると順序が反転し、Bob・Carol・Alice の並びになります。
よくある質問
数値と文字が混在する列はどうなりますか? 数値セルは数値として並べ替えられ、文字セルより前に配置されます。文字セルはそのあとにアルファベット順(文字コード順)で並びます。
列数を超える列番号を指定するとどうなりますか? 列番号が実際の列数より大きい場合、表はそのまま変更されずに返されます。
重複した値は正しく処理されますか? はい。安定ソートにより、同じキーを持つ行同士の元の相対順序はそのまま保たれます。