場合によっては、Excel でデータを上下反転する必要があります。つまり、垂直データ セットのデータの順序を逆にし、水平データ セットのデータの順序を左から右に反転する必要があります。
さて、これを行うにはExcelに組み込み関数が必要だと思われる場合は、がっかりすることになると思います。
Excelでデータを反転する方法はいくつかありますが、組み込みの機能はありません。ただし、簡単な並べ替えのトリック、数式、またはVBAを使用して簡単に行うことができます。
このチュートリアルでは、Excel で行、列、表のデータを上下反転する方法を説明します。
それでは始めましょう!
内容
SORTおよび補助列を使用してデータを反転します
Excelでデータの順序を逆にする最も簡単な方法のXNUMXつは、ヘルパー列を使用してから、そのヘルパー列を使用してデータを並べ替えることです。
データを垂直方向に反転(逆順)
以下のような列があるとします。データセットに名前を付けるそして、このデータを反転したいとします。
データを垂直方向に反転する手順は次のとおりです。
- 隣接する列に、列見出しとして「ヘルパー」と入力します
- ヘルプ列に、一連の数字(1、2、3など)を入力します。ここに示す方法を使用して、これをすばやく行うことができます
- 補助列を含むデータセット全体を選択します
- [データ]タブをクリックします
- 並べ替えアイコンをクリックします
- [並べ替え]ダイアログボックスで、[並べ替え]ドロップダウンメニューから[ヘルパー]を選択します
- 注文ドロップダウンメニューで、[大から小]を選択します
- [OK]をクリックします
上記の手順では、ヘルパー列の値に基づいてデータが並べ替えられます。これにより、データ内の名前も逆の順序になります。
完了したら、ヘルプ列を自由にドロップしてください。
この例では、列がXNUMXつしかない場合にデータを反転する方法を示しますが、テーブル全体がある場合は同じ手法を使用できます。必ずテーブル全体を選択してから、ヘルパー列を使用してデータを降順で並べ替えてください。
データを水平方向に反転
同様に、Excelでデータを水平方向に反転することもできます。
Excelには、[並べ替え]ダイアログボックス(左から右に並べ替え機能)を使用してデータを水平方向に並べ替えるオプションがあります。
以下に示すようなテーブルがあり、このデータを水平方向に反転するとします。
これを行う手順は次のとおりです。
- 下の行に、行のタイトルとして「Helper」と入力します
- ヘルパー行に、一連の数字(1、2、3など)を入力します。
- 補助行を含むデータセット全体を選択します
- [データ]タブをクリックします
- 並べ替えアイコンをクリックします
- [並べ替え]ダイアログボックスで、[オプション]ボタンをクリックします。
- 開いたダイアログで、[左から右に並べ替え]をクリックします
- [OK]をクリックします
- [並べ替え]ドロップダウンリストで、[行3](またはヘルパー列があるもの)を選択します。
- 注文ドロップダウンメニューで、[大から小]を選択します
- [OK]をクリックします
上記の手順では、テーブル全体が水平方向に反転します。
完了したら、ヘルパー行を削除できます。
Excel を使用して数式を逆さまにすると、フリップデータ
Microsoft 365には、Excelの列またはテーブルの順序を非常に簡単に逆にすることができるいくつかの新しい数式があります。
このセクションでは、SORTBY式(Microsoft 365を使用している場合)またはINDEX式(Microsoft 365を使用していない場合)を使用してこれを行う方法を説明します。
SORTBY関数を使用する(Microsoft 365で使用可能)
次のようなテーブルがあり、そのテーブルのデータを反転するとします。
これを行うには、まず、ヘッダーをコピーして、テーブルをめくりたい場所に配置します
次に、左端のヘッダーセルの下にある次の数式を使用します。
=SORTBY($A$2:$B$12,ROW(A2:A12),-1)
上記の式は、データを並べ替え、ROW関数の結果に基づいて並べ替えます。
この場合、ROW関数は、指定された範囲(この例では、2、3、4などの一連の数値)の間の行番号を表す数値の配列を返します。
この数式の1番目のパラメーターは-XNUMXであるため、数式はデータを降順で並べ替えます。
行番号が最も大きいレコードが一番上になり、ルール番号が最も小さいレコードが一番下になり、基本的にデータの順序が逆になります。
完了したら、数式を値に変換して静的テーブルを取得できます。
インデックス機能を使用する
SORTBY関数を使用できない場合でも、心配する必要はありません。すばらしいINDEX関数を使用できます。
以下に示すような名前のデータ セットがあり、このデータを反転したいとします。
これを行うための式は次のとおりです。
= INDEX($ A $ 2:$ A $ 12、ROWS(A2:$ A $ 12))
この式はどのように機能しますか?
上記の数式はINDEX関数を使用しており、XNUMX番目のパラメーターで指定された数値に基づいてセルから値を返します。
ROWS関数のXNUMX番目のパラメーターを使用すると、本当の魔法が起こります。
ROWS関数で参照の2番目の部分をロックしたため、最初のセルでは、A12とA11の間の行数(XNUMX)が返されます。
ただし、行を下に行くと、最初の参照がA3、次にA4というように変更され、XNUMX番目の参照はロックして絶対にしたため、そのままになります。
下に行くと、ROWS関数の結果は1減少し、11から10、9などになります。
INDEX関数は、XNUMX番目の引数の数値に基づいて値を返すため、データが逆の順序で返されることになります。
データセットに複数の列がある場合でも、同じ数式を使用できます。ただし、データをフェッチする必要のある列番号を指定するXNUMX番目のパラメーターを指定する必要があります。
次のようなデータセットがあり、テーブル全体の順序を逆にしたいとします。
これを行う式は次のとおりです。
=INDEX($A$2:$B$12,ROWS(A2:$A$12),COLUMNS($A$2:A2))
これは、値を取得する列番号を指定するXNUMX番目のパラメーターも追加した同様の式です。
この数式を動的にするために、COLUMNS関数を使用しました。この関数は、列の値を右にコピーすると、列の値を1から2、3に変更し続けます。
完了したら、数式を値に変換して、静的な結果を保証できます。
注:数式を使用してExcelでデータセットの順序を逆にすると、元の形式は保持されません。並べ替えられたデータの元の書式設定も必要な場合は、手動で適用するか、元のデータセットから新しい並べ替えられたデータセットに書式設定をコピーして貼り付けることができます
VBAを使用してデータを反転する
Excelでデータを反転することが頻繁に行う必要がある場合は、VBAメソッドを試すこともできます。
VBAマクロコードを使用すると、VBAエディターのブックに一度コピーして貼り付けてから、同じブックで何度も再利用できます。
コードを個人用マクロブックまたはExcelアドインとして保存して、システム上の任意のブックで使用することもできます。
以下は、ワークシートで選択したデータを垂直方向に反転するためのVBAコードです。
Sub FlipVerically()
バリアントとしての薄暗いTopRow
バリアントとしての薄暗いLastRow
Dim StartNum を整数として
整数としての薄暗い EndNum
Application.ScreenUpdating = False
開始番号 = 1
EndNum = 選択範囲、行数、数
StartNum <EndNumの間に実行
TopRow = Selection.Rows(StartNum)
LastRow = Selection.Rows(EndNum)
Selection.Rows(EndNum)= TopRow
Selection.Rows(StartNum)= LastRow
開始番号 = 開始番号 + 1
EndNum = EndNum-1
ループ
Application.ScreenUpdating = True
End Subの
このコードを使用するには、最初に反転するデータセット(ヘッダーを除く)を選択してから、このコードを実行する必要があります。
このコードはどのように機能しますか?
上記のコードは、最初にデータセット内の行の総数をカウントし、それを変数EndNumに割り当てます。
次に、DoWhileループを使用してデータを並べ替えます。
このデータを並べ替える方法は、最初と最後の行を取得してそれらを交換することです。次に、最後からXNUMX番目の行のXNUMX番目の行に移動し、それらを交換します。次に、XNUMX行目から最後の行へとXNUMX行目に移動します。
すべての並べ替えが完了すると、ループは終了します。
また、Application.ScreenUpdatingプロパティを使用し、コードの実行時にFALSEに設定し、コードの実行が終了するとTRUEに戻します。
これにより、画面上でリアルタイムに変更が発生していないことが保証され、プロセスが高速化されます。
コードの使い方は?
このコードをコピーして、次のようにVBエディターに貼り付けます。
- VBAコードを追加するExcelファイルを開きます
- Altキーを押しながらF-11キーを押します([開発者]タブに移動して[Visual Basic]アイコンをクリックすることもできます)
- 開いたVisualBasicエディターでは、VBAエディターの左側にプロジェクトエクスプローラーがあります。表示されない場合は、[表示]タブをクリックし、[プロジェクトエクスプローラー]をクリックします。
- コードを追加するワークブックの任意のオブジェクトを右クリックします
- [挿入]オプションに移動し、[モジュール]をクリックします。これにより、ワークブックに新しいモジュールが追加されます
- プロジェクトエクスプローラでモジュールアイコンをダブルクリックします。これにより、そのモジュールのコードウィンドウが開きます
- 上記のVBAコードをコピーしてコードウィンドウに貼り付けます
VBAマクロコードを実行するには、最初に反転するデータセットを選択します(ヘッダーを除く)。
データを選択した状態で、VBエディターに移動し、ツールバーの緑色の再生ボタンをクリックするか、コード内の任意の行を選択してF5キーを押します。
したがって、これらは、Excelでデータを反転する(つまり、データセットの順序を逆にする)方法の一部です。
このチュートリアルで説明したすべてのメソッド(数式、SORT関数、およびVBA)を使用して、データを垂直方向および水平方向に反転できます(水平方向のデータ反転には、それに応じて数式とVBAコードを調整する必要があります)。
このチュートリアルがお役に立てば幸いです。
FAQ: Excel でデータを上下反転する
Excel には、データを上下反転したり反転したりするための専用のショートカット キーがありません。ただし、ショートカット キーを使用してすべてのデータを選択し (Ctrl+A)、次にショートカット キーを使用してコピー (Ctrl+C) し、転置して貼り付けます (Alt+E、次に転置を選択)。