ADVERTISEMENT

【Googleドキュメント】表をソート(並び替え)する方法!列指定での昇順・降順

【Googleドキュメント】表をソート(並び替え)する方法!列指定での昇順・降順
🛡️ 超解決

Googleドキュメントで作成した表を、スプレッドシートのように列を指定して昇順や降順に並び替えたいと思ったことはありませんか。残念ながら、Googleドキュメントの表には標準でソート機能が搭載されていません。しかし、アドオンやGoogle Apps Scriptを活用することで、そのような並び替えが可能になります。この記事では、手軽に導入できるアドオンを使う方法と、カスタマイズ性の高いスクリプトを使う方法の2つを徹底解説します。どちらの方法も、列を指定して昇順・降順を選択できるため、目的に合わせてお使いいただけます。

【要点】Googleドキュメントの表をソートする2つの方法

  • アドオン「Table Sort」の利用: アドオンをインストールし、表を選択して列を指定するだけで昇順・降順の並び替えができます。最も手軽で初心者におすすめです。
  • Google Apps Scriptによるカスタムスクリプト: スクリプトエディタで関数を作成し、任意の列で並び替えを実行します。複雑な条件や自動化にも対応できます。
  • 注意点: 結合セルや異なるデータ型が混在する表では正しく並び替えられない可能性があります。事前に表を整理しておくことが重要です。

ADVERTISEMENT

Googleドキュメントの表に標準ソート機能がない理由

Googleドキュメントは、主に文書の作成や編集を目的としたツールです。そのため、スプレッドシートのようなデータ分析や操作機能は備えていません。表の並び替えもその一つで、標準のメニューには用意されていません。しかし、多くのユーザーがドキュメント内の表をデータ整理に利用していることから、アドオンやスクリプトを使ってこの機能を補うことが一般的です。ここでは、代表的な2つの方法を紹介します。

アドオン「Table Sort」を使ったソート手順

  1. アドオンをインストールする
    メニューバーの「拡張機能」から「アドオン」→「アドオンを入手」を選択します。検索バーに「Table Sort」と入力し、表示されたアドオンを選択してインストールします。認証画面が表示されるので、必要な権限を承認してください。
  2. 表を選択する
    並び替えたい表をクリックして選択します。ヘッダー行を含む範囲全体をドラッグして選択することをおすすめします。
  3. アドオンを起動する
    「拡張機能」メニューに「Table Sort」が追加されているので、それをクリックして「Sort table」を選択します。
  4. 並び替えの条件を設定する
    サイドバーが開きます。列番号(例:列A)と昇順・降順を選択し、「Sort」ボタンをクリックします。
  5. 結果を確認する
    表が指定した列で並び替えられます。必要に応じて元に戻す場合は、Ctrl+Z(MacはCmd+Z)でアンドゥできます。

Google Apps Scriptを使ったカスタムソート手順

より柔軟なソートを行いたい場合や、表データを自動処理したい場合は、Apps Scriptを使います。以下は、アクティブな表を選択した列で昇順に並び替えるスクリプトの例です。

  1. スクリプトエディタを開く
    メニューバーの「拡張機能」から「Apps Script」を選択します。新しいタブでスクリプトエディタが開きます。
  2. プロジェクト名を設定する
    左上の「無題のプロジェクト」をクリックして、わかりやすい名前(例:「表ソート」)に変更します。
  3. コードを記述する
    以下のコードをコピーしてエディタに貼り付けます。
    function sortTableByColumn() {
    var doc = DocumentApp.getActiveDocument();
    var body = doc.getBody();
    var tables = body.getTables();
    if (tables.length === 0) {
    DocumentApp.getUi().alert('表が見つかりませんでした。');
    return;
    }
    var table = tables[0]; // 最初の表を対象
    var numRows = table.getNumRows();
    var numCols = table.getNumColumns();
    var data = [];
    // ヘッダー行を除くデータを取得
    for (var i = 1; i < numRows; i++) {
    var row = table.getRow(i);
    var rowData = [];
    for (var j = 0; j < numCols; j++) {
    rowData.push(row.getCell(j).getText());
    }
    data.push(rowData);
    }
    // 指定列でソート(ここでは列0、昇順)
    var columnIndex = 0; // 0から始まる列番号
    data.sort(function(a, b) {
    var valA = a[columnIndex];
    var valB = b[columnIndex];
    if (valA < valB) return -1;
    if (valA > valB) return 1;
    return 0;
    });
    // ソート結果を表に書き戻す
    for (var i = 1; i < numRows; i++) {
    var row = table.getRow(i);
    for (var j = 0; j < numCols; j++) {
    row.getCell(j).setText(data[i-1][j]);
    }
    }
    DocumentApp.getUi().alert('並び替えが完了しました。');
    }
  4. スクリプトを保存する
    「保存」アイコンをクリックします。初回はプロジェクト名を確認するダイアログが表示されます。
  5. スクリプトを実行する
    関数名「sortTableByColumn」を選択し、実行ボタン(▶)をクリックします。初回は権限の承認が求められるので、内容を確認して承認してください。
  6. 結果を確認する
    表の最初の列が昇順に並び替えられます。降順にしたい場合は、コード内の比較部分を逆にしてください。また、列番号を変更することで任意の列でソート可能です。

ADVERTISEMENT

ソート時の注意点とトラブルシューティング

結合セルがある表では正しく並び替えられない

結合セルが含まれている表は、データ構造が複雑なため、アドオンやスクリプトが正しく動作しないことがあります。特に、行をまたがる結合があると、並び替え後にセルの位置がずれる恐れがあります。事前に結合を解除(セルを分割)してからソートを実行してください。

異なるデータ型が混在するとソート順が期待通りにならない

同じ列に文字列と数値が混ざっている場合、文字列としての並び替え(例:1,10,2,3)になることがあります。すべてのデータを同じ型に統一するか、数値の場合は数値として比較するロジックをスクリプトに組み込む必要があります。上記のスクリプトはテキスト比較なので、数値の場合はparseIntなどで数値変換することをおすすめします。

アドオンが動作しない場合の対処法

アドオンが正常に動作しない場合は、Googleドキュメントの再読み込みや、アドオンのアップデートを確認してください。また、表が複数ある場合、適切な表が選択されていない可能性があります。表をクリックして選択した状態でアドオンを起動してください。

アドオンとスクリプトの比較表

項目 アドオン(Table Sort) Apps Script(カスタムスクリプト)
導入の手軽さ 数クリックでインストールでき、すぐに使える コードの記述が必要で、やや敷居が高い
カスタマイズ性 列の選択と昇順/降順のみ ソート条件やデータ処理を自由にカスタマイズ可能
複数の表への対応 表を選択する必要がある スクリプトで任意の表を指定できる
自動化 手動で毎回実行する必要がある トリガーを設定して自動実行できる
セキュリティ アドオンの権限を確認する必要がある 自分のスクリプトなので安全性は高い

この記事では、Googleドキュメントの表を列指定で昇順・降順に並び替える2つの方法を解説しました。アドオン「Table Sort」を使えば、インストールするだけで簡単にソート機能を追加できます。一方、Google Apps Scriptを活用すれば、より複雑な条件や自動化にも対応できます。表のデータ構造がシンプルで手軽に並び替えたい場合はアドオンを、カスタマイズや複数表の処理が必要な場合はスクリプトを選ぶと良いでしょう。ぜひご自身の用途に合わせて、最適な方法をお試しください。


ADVERTISEMENT

📄
Googleドキュメントトラブル完全解決データベースこの記事以外にも、書式・共有・Apps Script・引用など様々な困りごとへの解決策をまとめています。逆引きに活用してください。
この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。