元データを加工せずに、データを逆順にするEXCEL関数
日常業務でPOSシステムから出力されたデータが、最新の販売データが上に表示されていて、必要な情報を探すのに苦労したことはありませんか?
古いデータから順に新しいデータへと並べたいのに、データが逆に表示されていると非常に不便です。
日付 | 商品名 | 売上数量 | 売上金額 (円) |
2024/08/09 | 商品A | 50 | 75,000 |
2024/08/09 | 商品B | 30 | 45,000 |
2024/08/08 | 商品A | 20 | 30,000 |
2024/08/07 | 商品C | 40 | 60,000 |
2024/08/06 | 商品D | 35 | 52,500 |
2024/08/06 | 商品A | 15 | 22,500 |
そんな悩みを解決するために、EXCEL関数を使ってデータを逆順に表示する方法を紹介します。
本記事で紹介する方法のポイントは以下の2つです:
- 日付や他の基準に依存せずにデータを逆順に並べ替え
- 連番を追加せず、元データを加工せずに並べ替え
手動で連番を追加する方法もありますが、その場合、元データを加工する必要があり、定期的な作業では効率的ではありません。
目次
EXCELでデータを逆順に表示する方法
最新のデータが上に表示されてしまう問題を解決するために、
EXCELのSORTBY
関数とSEQUENCE
関数を組み合わせて、データを逆順に並べ替える方法をご紹介します。
データを逆順にするには、ソートの基準となる連番が必要です。
単純に日付でソートすると、同じ日付がある場合に正確に逆順にはならないからです。
そのため、日付や他の基準に依存せずに確実にデータを逆順に並べ替えるための連番データが必要です。
=SORTBY($B$2:$D$7, SEQUENCE(ROWS(Sheet1!$B$2:$B$7), 1, 1, 1), -1)
この関数を任意のセルに入力すると、下図のように「元データの逆順」が出力されます。
関数式の説明
この関数を使った並べ替えのロジックと、それに関連する各関数の役割は以下の通りです。
1. 逆順にするために連番を作成 (SEQUENCE
関数):
- 役割:
SEQUENCE
関数は、データ範囲内の行数に基づいて、1から始まる連続した数値の配列を生成します。- これにより、元データの各行に仮想的な「連番」を付けることができます。
- 構文:
=SEQUENCE(行, [列], [開始], [目盛り])
- 主な引数:
- 行(必須): 生成する行の数を指定します。
- [列](任意): 生成する列の数を指定します。省略すると1列になります。
- [開始](任意): 数列の開始値を指定します。省略すると1から始まります。
- [目盛り](任意): 次の数値に移る際の増減量を指定します。省略すると1ずつ増加します。
より詳しい解説はこちら
2. 連番を基にデータを逆順にソート (SORTBY
関数):
- 役割:
SORTBY
関数は、生成された連番を基にデータを並べ替えます。-1
を指定することで、生成された連番を逆順に並べ替えられます。
- 構文:
=SORTBY(配列, 基準配列, [並び替え順序], …)
- 主な引数:
- 配列(必須): 並び替えるデータ全体の範囲を指定します。
- 基準配列: 並び替えの基準となる行または列を指定します。
- [並び替え順序](任意): 並び替えの順序を指定します。1または省略の場合は昇順、-1を指定すると降順に並び替えられます。
より詳しい解説はこちら
仮想的な連番の役割:
SEQUENCE
関数で生成された連番データは、実際には元データに物理的に追加されるわけではありません。
代わりに、この連番はSORTBY
関数内で仮想的に使用され、元データの並べ替え基準として機能します。
これにより、元データをそのままの状態で、指定された順序で並べ替えることができます。
最後に
本記事では、日常業務で発生しがちな「最新のデータが上に表示される」という困った状況を解決するために、
EXCELのSORTBY
関数を使ってデータを逆順に並べ替える方法を紹介しました。
この記事のポイントは次の2つです:
- 日付や他の基準に依存せずにデータを逆順に並べ替え
- 連番を追加することなく、 連番を追加せず、元データを加工せずに並べ替え
この手法を使うことで、作業の効率が大幅に向上し、業務の円滑な遂行に役立てることができます。
なお、データ範囲が可変の場合や、さらに高度な方法については、別途紹介する予定ですので、ぜひそちらもご参照ください。
解答付きサンプルデータ
解答付きサンプルデータが欲しい方は、下記からダウンロードしてください。