エクセルの列や行のデータを反転(縦・横)させる方法

  • これを共有
Michael Brown

このチュートリアルでは、Excelの表を元の書式や数式を保持したまま、縦と横に反転させる簡単な方法をいくつか紹介します。

Excelでデータを反転させることは、ワンクリックでできる簡単な作業のように聞こえますが、意外にもそのようなオプションは組み込まれていません。 アルファベット順や小さいものから大きいものへと並べられた列のデータの順番を逆にする必要がある場合、当然Excelの並べ替え機能を使用できます。 しかし、データを並べ替えていない列はどうしたら反転できるでしょうか。 あるいは、横一列の表のデータの順番はどうやったら反転できるでしょうか。すぐにすべての答えが出ます。

    Excelのデータを縦に反転させる

    Excelで列を反転させるには、内蔵の機能、数式、VBA、特殊なツールなど、ちょっとした工夫でさまざまな方法があります。 各方法の詳しい手順は、以下のとおりです。

    Excelで列を反転させる方法

    列のデータの順序を縦に逆転させるには、次の手順を実行します。

    1. 反転させたい列の隣にヘルパー列を追加し、その列に1から始まる一連の数字を入力します。このヒントでは、これを自動的に実行させる方法を紹介します。
    2. 数値の列を降順に並べ替える。 そのためには、ヘルパー列の任意のセルを選択し、次のコマンドを実行します。 データタブ > ソート&フィルター をクリックします。 大きいものから小さいものへのソート ボタン(ZA)を押す。

    下のスクリーンショットのように、B列の数字だけでなく、A列の元の項目も並べ替え、行の順番を逆にします。

    これで、ヘルパーカラムは不要になったので、安全に削除できます。

    ヒント:シリアル番号で素早く列を埋める方法

    一連の数字を列に入力する最も簡単な方法は、Excelのオートフィル機能を使用することです。

    • 最初のセルに1を、2番目のセルに2を入力します(下のスクリーンショットのセルB2、B3)。
    • 先ほど数字を入力したセルを選択し、選択範囲の右下をダブルクリックします。

    これで完了です!Excelは、隣接する列のデータを使って、最後のセルまで通し番号で列を自動補填してくれます。

    Excelで表を反転させる方法

    上記の方法は、複数の列のデータの順序を逆にする場合にも有効です。

    時々(多くの場合、並べ替えの前に数値の列全体を選択したとき)、Excelは次のような表示をすることがあります。 ソート警告 ダイアログが表示されます。 選択範囲を拡大する オプションを選択し ソート ボタンをクリックします。

    補足:もし、あなたが ぬきつぬかれつ は、ExcelのTRANSPOSE関数などを使って、Excelでデータを転置することができます。

    Excelで数式を使って列を反転させる方法

    列を上下反転させるもう一つの方法は、この一般的な数式を使うことである。

    INDEX( レンジ , ROWS( レンジ ))

    今回のサンプルデータセットでは、以下のような式になる。

    =index($a$2:$a$7,rows(a2:$a$7))

    ...そして、A列を非の打ち所なく反転させる。

    この式の仕組み

    この式の中心は、INDEX(array, row_num, [column_num]) 関数です。 勢揃い は、指定された行番号や列番号に基づく。

    配列の中に、反転させたいリスト全体(この例ではA2:A7)を投入します。

    行数は,ROWS 関数で計算されます。 最も単純な形として,ROWS(array) は,配列中の行数を返します。 勢揃い この式では、相対参照と絶対参照を巧みに使って、「列を反転」させています。

    • 最初のセル(B2)については、ROWS(A2:$A$7)が6を返すので、INDEXはリストの最後の項目(6番目の項目)を取得します。
    • 2番目のセル(B3)では、相対参照A2がA3に変わり、その結果ROWS(A3:$A$7)は5を返し、INDEXは最後から2番目の項目をフェッチすることを余儀なくされています。

    つまり、ROWSはINDEXのデクリメントカウンターのようなもので、最後のアイテムから最初のアイテムに向かって移動するようになっています。

    ヒント:数式を値に置き換える方法

    この場合、数式セルをコピーし、値を貼り付けたいセルを選択し、Shift+F10を押してからVを押すと、Excelの「特殊> 値の貼り付け」オプションを適用する最も速い方法となります。

    詳しくは、「Excelで数式を値に置き換える方法」をご覧ください。

    VBAでExcelの列を反転させる方法

    VBAを使ったことがある方なら、以下のマクロを使って、1列または数列のデータの順番を縦に逆転させることができます。

    Dim Rng As Range Dim WorkRng As Range Dim Arr As Variant Dim i As Integer , j As Integer , k As Integer On Error Resume Next xTitleId = "Flip columns vertically" Set WorkRng = Application.Selection Set WorkRng = Application.InputBox("Range" , xTitleId, WorkRng.Address, Type :=8) Arr = WorkRng.Formula Application.ScreenUpdating = False Application.Calculation = xlCalculationManual For j = 1 ToUBound (Arr, 2) k = UBound (Arr, 1) For i = 1 To UBound (Arr, 1) / 2 xTemp = Arr(i, j) Arr(i, j) = Arr(k, j) Arr(k, j) = xTemp k = k - 1 Next Next WorkRng.Formula = Arr Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic End Sub.

    列を反転させるマクロの使用方法

    1. Microsoft Visual Basic for Applicationsのウィンドウを開きます(Alt + F11)。
    2. クリック インサート > モジュール をクリックし、コードウィンドウに上記のコードを貼り付けてください。
    3. マクロを実行する( F5 )。
    4. があります。 フリップコラム ダイアログが表示され、反転させる範囲を選択するよう促されます。

    マウスで1つまたは複数の列を選択し、列のヘッダーを含まずに よっしゃー をクリックすると、すぐに結果が表示されます。

    マクロを保存するには、必ずファイルを エクセルマクロ対応ワークブック .

    Excelで書式や数式を保持したままデータを反転させる方法

    上記の方法で、列や表のデータの順序を簡単に反転させることができます。 しかし、値だけでなく、セルの書式も反転させたい場合はどうしたらよいでしょうか。 さらに、表のデータの一部が数式駆動型であり、列を反転させたときに数式が壊れないようにしたい場合はどうしたらよいでしょうか。 このような場合は フリップ は、Ultimate Suite for Excelに含まれる機能です。

    下図のような、ある列には値が、ある列には計算式が含まれる、きれいに整形された表があるとします。

    テーブルの列を反転させ、書式設定(数量ゼロの行をグレーで表示)と正しく計算された数式を保持することを目的としています。 これは、2つのステップで簡単に行うことができます。

    1. テーブルの任意のセルを選択した状態で、次のコマンドを実行します。 エイブルビットのデータ tab> トランスフォーム をクリックします。 フリップ > 縦型フリップ .
    2. での 縦型フリップ ダイアログウィンドウで、以下のオプションを設定します。
      • での 範囲を選択してください ボックスで、範囲の参照を確認し、ヘッダー行が含まれていないことを確認します。
      • を選択します。 セルリファレンスの調整 オプションにチェックを入れてください。 フォーマットの保持 ボックスを使用します。
      • オプションで、以下を選択します。 バックアップコピーの作成 (デフォルトで選択されています)。
      • をクリックします。 フリップ ボタンをクリックします。

    完了!表中のデータの順番は逆になり、書式は維持され、数式中のセル参照は適切に調整されます。

    Excelのデータを水平に反転させる

    これまで、このチュートリアルでは、列の上下を反転させてきましたが、次に、データの順序を水平方向に反転させる方法、つまり、テーブルを左から右に反転させる方法を説明します。

    Excelで行を反転させる方法

    Excelには行を並べ替えるオプションがないため、まず行を列に変更し、次に列を並べ替えてから表を元に戻す必要があります。 以下に詳しい手順を説明します。

    1. 列を行に変換するには、「特殊貼り付け>転置」機能を使用します。 その結果、表はこのような変換を受けることになります。
    2. 最初の例のように、数字を含むヘルパーカラムを追加し、ヘルパーカラムでソートします。 中間結果は次のようになります。
    3. 使用方法 特殊貼り付け> 転置 もう1度、テーブルを回転させて戻してください。

    注:ソースデータに数式が含まれている場合、転置操作の際に数式が壊れることがあります。 この場合、手動で数式を復元する必要があります。 または、Ultimate Suiteに含まれるFlipツールを使用すると、すべての参照を自動的に調整することができます。

    VBAでデータの並びを横方向に反転させる

    Excelの表のデータを素早く横方向に反転させる簡単なマクロをご紹介します。

    Sub FlipDataHorizontally() Dim Rng As Range Dim WorkRng As Range Dim Arr As Variant Dim i As Integer , j As Integer , k As Integer On Error Resume Next xTitleId = "Flip Data Horizontally" Set WorkRng = Application.Selection Set WorkRng = Application.InputBox("Range" , xTitleId, WorkRng.Address, Type :=8) Arr = WorkRng.Formula Application.ScreenUpdating = False Application.Calculation = false Application.DataHorizontally = "データを水平方向に反転" Set WorkRng = Application.Selection Set WorkRng = Application.InputBox( "範囲" , xPath ) Arr = "Range "Type : 0, 0, 0, 0, 0.xlCalculationManual For i = 1 To UBound (Arr, 1) k = UBound (Arr, 2) For j = 1 To UBound (Arr, 2) / 2 xTemp = Arr(i, j) Arr(i, k) Arr(i, k) = xTemp k = k - 1 Next Next WorkRng.Formula = Arr Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic End Sub.

    Excelのワークブックにマクロを追加するには、以下の手順に従ってください。 マクロを実行するとすぐに、以下のダイアログウィンドウが表示され、範囲を選択するように求められます。

    ヘッダー行を含む表全体を選択し よっしゃー 一瞬で行のデータの順番が逆になります。

    Ultimate Suite for Excelで行のデータを反転させる

    列の反転と同様に、Ultimate Suite for Excelを使えば、行のデータの順序を逆にすることができます。 反転させたいセルの範囲を選択し、[OK]をクリックするだけです。 エイブルビットのデータ tab> トランスフォーム をクリックします。 フリップ > 水平フリップ .

    での 水平フリップ ダイアログウィンドウで、データセットに適したオプションを選択します。 この例では、値を扱うので、次のように選択します。 値の貼り付けのみ フォーマットの保持 :

    をクリックします。 フリップ ボタンを押すと、あっという間にテーブルが左から右へ反転します。

    以上、エクセルでデータを反転させる方法でした。 読んでいただきありがとうございました!来週のブログもよろしくお願いします。

    Michael Brown は、ソフトウェア ツールを使用して複雑なプロセスを簡素化することに情熱を注ぐ熱心なテクノロジー愛好家です。テクノロジー業界で 10 年以上の経験があり、Microsoft Excel と Outlook、さらに Google Sheets と Docs のスキルを磨いてきました。 Michael のブログは、彼の知識と専門知識を他の人と共有することに特化しており、生産性と効率を向上させるためのわかりやすいヒントとチュートリアルを提供しています。経験豊富なプロフェッショナルであろうと初心者であろうと、Michael のブログでは、これらの重要なソフトウェア ツールを最大限に活用するための貴重な洞察と実践的なアドバイスを提供しています。