KutoolsforOffice— 1 つのソリューション、5 つの強力なツール。少ない労力で大きな成果。

Excel で列を値に基づいて自動的に並べ替えるにはどうすればよいですか?

著者ケリー変更日

Excel でリストやテーブルを扱う際、新しい情報が追加されても常にデータが並べ替えられた状態で表示されるようにしたいことがよくあります。たとえば、以下のスクリーンショットのように購入テーブルを管理しており、商品の価格が定期的に更新されたり、新しい項目が追加されたりする場合を考えてみましょう。このような状況では、新しい値を入力してもExcel は価格列を自動的に再順序付けせず、データは元の位置に留まり、再度手動で並べ替えを行うまで順序が変わりません。これは、常に並べ替えられた情報を迅速に分析・提示する必要がある場面で、混乱や誤りを引き起こす可能性があります。そのため、変更や追加が発生した時点で列をその値に基づいて自動的に並べ替える方法を知っておくことで、大幅な時間節約とワークフローの正確性維持につながります。

本ガイドでは、ワークシートを更新するたびに指定した列を値に基づいて自動的に並べ替える実用的な方法をご紹介します。以下では、VBA マクロによる解決策と、最新版Excel 向けの動的数式による解決策の両方を解説します。各手法は特定のシナリオに最適化されており、設定手順、活用のヒント、パラメーターの詳細、トラブルシューティング情報を提供することで、あなたが最も適したアプローチを効果的に実装できるようサポートします。

VBA で列を値に基づいて自動並べ替えする

Excel 数式(動的配列)で列を値に基づいて自動並べ替えする

Excel で価格列を並べ替えるサンプル購入テーブルを示すスクリーンショット


VBA で列を値に基づいて自動並べ替えする

この VBA マクロは、ワークシート内で指定した列に新しい値を入力したり既存のデータを変更したりするたびに、その列内のすべてのデータを自動的に並べ替えます。このアプローチは、古いバージョンのExcel を使用している場合や、追加の列を使わずにテーブル内のデータを常にその場で並べ替えたい場合に最適です。

この方法が役立つ一般的なシナリオ:

  • テーブルまたは列内のデータを変更した後、即座に最新の順序が反映され、手動での並べ替えが不要になるようにしたい場合。
  • 複数のユーザーが同じデータ範囲を頻繁に更新し、常に一貫した並べ替え表示を維持する必要がある共同作業シートを管理している場合。

開始前に知っておくべきこと:
- VBA ソリューションはワークシートに直接変更を加えます。作業を始める前に、必ずファイルを保存してください。
- マクロは、Excel でマクロが有効になっている場合にのみ動作します。
- マクロは特定のワークシートに紐づいているため、テーブルのレイアウトを変更した場合には調整が必要になることがあります。

1。シートタブバーで現在のワークシート名を右クリックし、「コードの表示」をコンテキストメニューから選択します。
シートタブバーで[コードの表示]オプションが選択された右クリックメニューを示すスクリーンショット

2。 「Microsoft Visual Basic for Applications」ウィンドウが開いたら、対象のワークシートのコードウィンドウに次の VBA マクロコードを貼り付けてください。
自動並べ替え用の VBA コードが貼り付けられた Microsoft Visual Basic for Applications ウィンドウのスクリーンショット

VBA:Excel で列を自動並べ替え

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Range("B:B")) Is Nothing Then
Range("B1").Sort Key1:=Range("B2"), _
Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom
End If
End Sub

注:
1) 上記の VBA コードにおいて、「B:B」は B 列を指し、「B1」は B 列の1 行目のセル、「B2」はヘッダーの直下のセルを意味します。これらの参照は、自動並べ替えしたい列に合わせて変更できます。
2) 5 行目のパラメーターHeader:=xlYesは、データ範囲にヘッダー行が含まれていることを示しており、ヘッダーが列の値と一緒に並べ替えられないようにします。データ範囲にヘッダーがない場合は、これをHeader:=xlNoに変更し、同時にKey1:=Range("B2")Key1:=Range("B1")に修正してください。
3) このマクロは、指定した列内のセル値が変更されるたびに自動でトリガーされます。

3。ワークシートに戻ります。これで、価格列に新しい数値を入力したり既存の値を更新したりするたびに、その列が即座に昇順に再並べ替えられます。
新しい値を入力した後に価格列が自動的に並べ替えられた Excel テーブルを示すスクリーンショット
ヒント:新しい値は必ず、列の最後の使用済みセルの直後にご入力ください。データ内に空白セルがあると、並べ替えが期待通りに動作しません。


Excel 数式(動的配列)で列を値に基づいて自動並べ替えする

Excel 365 またはExcel 2021 以降をご利用なら、SORTSORTBYといった動的配列関数を使えば、コード不要で効率的に並べ替えられたリストを生成でき、データを変更しても自動で更新されます。このソリューションは VBA を一切必要とせず、最新のExcel バージョンでネイティブにサポートされているため、元のデータを一切変えずに、別の範囲やワークシートで並べ替え済みのコピーを利用したい場合に最適です。

このアプローチはどのような場面で使うべきでしょうか?

  • 元の生データをそのまま保持しつつ、レポート・ダッシュボード・印刷用など別の場所でリアルタイムに並べ替えられたデータが必要な場合。
  • Excel 365、Excel 2021、またはそれ以降の動的配列をサポートするバージョンをご利用の場合。
考えられる制限事項:
  • この方法では、並べ替えられたデータが新しい領域に表示されますが、元のデータは並べ替えられません。元のデータをその場で再順序付けしたい場合は、上記の VBA ソリューションをご検討ください。
  • 動的配列は、Excel 2019 以前のバージョンではご利用いただけません。

1。並べ替え済みリストを表示したい場所を決めます。たとえば、元のテーブルが A1:C10(ヘッダーは1 行目)で、並べ替え済みリストをセル E1 から表示したい場合は、E1 を選択します。

2。セル E1 に次の数式を入力します:2。セル E1 に次の数式を入力します:

=SORT(A2:C10,2,1)

上記の数式について:

  • A2:C10は元のデータ範囲(ヘッダーを除く)です。ご自身のデータ範囲に合わせて、こちらを調整してください。
  • 2は、2 列目を使って並べ替えを行うことを意味します。たとえば、価格が「範囲を選択してください」の2 列目に含まれている場合などが該当します。
  • 1は昇順を指定します。降順に並べ替える場合は、-1を使用してください。

3。Enter キーを押してください。これにより、動的で並べ替え済みのデータが自動的に出力されます。元の範囲(例:新しい価格や商品)にアイテムを追加・削除・編集すると、並べ替え済みリストは即座に更新され、手動での操作は一切不要です。

注:

  • 元の範囲の下にさらにデータが追加された場合は、数式内の参照(例:A2:C10)をその範囲に合わせて拡張する必要があります。
  • 常に変化する範囲については、Excel テーブル([挿入]>[テーブル])の使用を検討し、SORT 関数内でテーブル名を参照することで、範囲が自動的に更新されるようにしてください。
  • 単一列(例:B2:B10)を使用する場合、数式は次のようにシンプルになります。=SORT(B2:B10,1,1)

デモ:Excel で VBA を使用して列を値に基づいて自動並べ替え

 
Kutools for Excel:300 個を超える便利なツールがすぐそこへ!AI 搭載の機能で、よりスマートでスピーディーな作業をぜひお楽しみください!今すぐダウンロード!

Excel で出現頻度に基づいて簡単に並べ替える

Kutools for Excel の「高度なソート」機能を使えば、テキストの長さ、姓、絶対値、出現頻度など、さまざまな基準でデータを簡単に並べ替えられます。

Kutools for Excel「高度な並べ替え」機能とその並べ替えオプションが表示されているスクリーンショット

Kutools for Excel— 300 以上の必須ツールでExcel を強化し、作業をより迅速・簡単に。AI 機能を活用して、スマートなデータ処理と生産性の飛躍的な向上を実現します。今すぐ入手

最高の Office 業務効率化ツール

🤖KUTOOLS AI アシスタント:次に基づいてデータ分析を革新します:インテリジェント実行     コード生成  カスタム数式作成    データ分析とチャート生成  拡張機能呼び出し
人気の機能検索・ハイライト、または重複をマーキング     空白行を削除する     データを失うことなく列の結合またはセルを     数式を使用しない四捨五入...
スーパー LOOKUP複数条件 VLookup    複数値 VLookup     複数シート間 VLookup      ファジーマッチ....
高度なドロップダウンリストドロップダウンリストをすばやく作成     連動型ドロップダウンリスト     複数選択可能なドロップダウンリスト....
列マネージャー指定した数の列を追加列の移動非表示列の表示状態を切り替え範囲および列の比較...
注目の機能グリッドフォーカス     デザインビュー   強化された数式バー    ワークブックとシートマネージャー     リソースライブラリ(オートテキスト)  日付ピッカー     ワークシートの統合    暗号化/セルの復号化    リストからメール送信     スーパーフィルター      特殊フィルタ(太字のフォントを持つセルをフィルタリング/斜体/取り消し線。。。) 。。。
トップ15 ツールセット12 テキストツールテキストの追加特定の文字を削除、...)   50+チャートタイプガントチャート、...)   40+実用的関数誕生日に基づいて年齢を計算します、...)   19 挿入ツールQR コードを挿入パスから画像を挿入、...)   12 変換ツール単語に変換する為替レートの変換、...)   7 結合と分割ツール高度な行のマージセルの分割、...)さらに多数
Kutools はお好みの言語でご利用いただけます。英語、スペイン語、ドイツ語、フランス語、中国語、および40+の他の言語をサポートしています!

Kutools for Excel でExcel スキルを強化し、これまでにない効率を体験しましょう。Kutools for Excel は、生産性を高め、時間を大幅に節約できる高度な機能を300 以上提供します。最も必要な機能を今すぐ入手するにはこちらをクリック。。。


Office Tab は Office にタブインターフェースをもたらし、作業を大幅に簡単にします

  • Word、Excel、PowerPoint でタブを使った編集と閲覧を有効にします。Publisher、Access、Visio、Project でもご利用いただけます。
  • 複数のドキュメントを、新しいウィンドウではなく、同じウィンドウ内の新しいタブで開いたり作成したりできます。
  • 日々の生産性を50%も向上させ、毎日数百回ものマウスクリックを削減します!

すべてのKutools アドインが、たった1 つのインストーラーで完結。

Kutools for Officeスイートには、Excel ・Word ・Outlook ・PowerPoint 用のアドインと Office Tab Pro が含まれており、複数の Office アプリを横断して作業するチームに最適です。

ExcelWordOutlookTabsPowerPoint
  • オールインワンスイート— Excel、Word、Outlook、PowerPoint 用アドイン+Office Tab Pro
  • インストーラー1 つ、ライセンス1 つ— 数分でセットアップ可能(MSI 対応)
  • 連携してさらにパワーアップ— Office アプリ全体で生産性が向上
  • 30 日間のフル機能トライアル— 登録不要、クレジットカード不要
  • 最高のお得感— 個別アドイン購入よりお得