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

Excel で列を1 行おきに分割するには?

著者Xiaoyang変更日

Excel で長いリストを扱う際、元のリストから1 行おきにデータを取得し、1 つの列を2 つの別々の列に分割したい場面に出くわすことがあります。たとえば、連絡先リストや取引記録のシリーズにおいて、交互に行を配置してバランスの取れた2 つのリストを作成したい場合などが該当します。こうした作業は、特に大規模なデータセットでは手作業で行うのが少々困難です。添付のスクリーンショットはこの課題を示しており、1 つの列に並んだデータが交互に行を分けて2 つの列にきれいに分割されています。この操作を効率的にこなせば、データの整理がより明確になり、その後の分析やレポート作成にも最適な形に整えることができます。

行を分割するための「他の行ごと」のExcelデータのスクリーンショット

Excel にはこの課題に対処するための実用的なアプローチがいくつかあり、それぞれ異なる好みやニーズにぴったりです。

以下のセクションでは、目的の結果を確実に得るための3 つの方法——数式の活用、VBA マクロの適用、およびKutools for Excel ユーティリティの利用——を、ステップバイステップで詳しく解説します。さらに、どの方法を選んでも一般的な落とし穴を回避し、スムーズな作業を実現するための実用的なヒント、注意事項、トラブルシューティングのアドバイスも併せてご提供します。


数式で列を1 行おきに分割する

数式を使えば、1 つの列を1 行おきに2 つの列に分割する作業が簡単に実現できます。この手法は、ソースデータの変更に応じて自動的に更新される動的なソリューションが必要な場合や、マクロやアドインを使いたくない場面で特に効果的です。

この分割を実現するには、次の手順で数式を適用します。

1。空白セル(例:セル C2)に次の数式を入力してください。この数式は、ソースデータの範囲(ここでは)$A$2:$A$13)から奇数行(1 行目、3 行目、5 行目など)を抽出します。

=INDEX($A$2:$A$13,ROWS(C$1:C1)*2-1)

この数式は、ROWS 関数でリスト内の位置を計算し、それを2 倍して1 を引くことで、奇数行だけを抽出します。
たとえば、C2 セルにこの数式を入力して下にドラッグすると、A2、A4、A6…といったエントリが順に取得されます。

他の行ごとに行を2列に分割する数式を示すスクリーンショット

2。数式を入力したら、列の下方向にフィルハンドルをドラッグし、#REF!などのエラー値が表示されるまで続けます。これらのエラーは、数式が指定された範囲外の行を参照しようとした際に表示され、データの末尾に到達したことを示します。最後の有効な値が表示されたらそこでドラッグを停止し、その後、エラーが表示されたセルを削除すれば、よりクリーンな結果が得られます。

行を分割するために数式を下にドラッグした結果を示すスクリーンショット

3。セル D2 に、ソース範囲から偶数行(2 行目、4 行目、6 行目など)を抽出する次の数式を入力してください。

=INDEX($A$2:$A$13,ROWS(D$1:D1)*2)

この数式も同様に、D 列の下方向にドラッグ(フィル)してください。そうすると、A3、A5、A7…といった値が順に返されます。
必要に応じて、最後に表示されるすべてのエラーメッセージを削除して、見やすく整えましょう。

数式を使用して他の行ごとに2列に分割されたデータのスクリーンショット

この数式による解決策は、行数が偶数の通常のリストに最適です。また、余分なエラー値を削除しても問題ない場合にも適しています。ただし、リストに空白行が含まれている場合は、それらも位置に応じて転送されるため、分割後に意図しないギャップが生じていないかご確認ください。

ヒントと注意事項:セル参照は実際のデータ範囲に合わせて調整してください。ソースデータのサイズを変更した場合は、エラーが発生しないよう数式を再度確認してください。また、数式をドラッグする際は、意図したデータセットの範囲を超えないようご注意ください。

注記:
  • #REF! エラーが表示された場合、その数式がソース範囲外の行を参照しようとしていることを意味します。このようなエラーは、次のようにIFERROR 関数でラップすることで非表示にできます。例:
    =IFERROR(INDEX($A$2:$A$13,ROWS(C$1:C1)*2-1),"")
    この方法を使うと、エラーコードの代わりに空白セルが表示されるため、特に他者に結果を提示する際に、よりクリーンで見やすい出力になります。
  • Excel 365 または Excel 2021 以降をご利用の場合、新しい FILTER 関数と SEQUENCE 関数を使えば、動的テーブル内で自動的にデータを分割できます。次のような数式で、2 つの範囲を作成できます。
    • =FILTER(A2:A100,MOD(SEQUENCE(ROWS(A2:A100)),2)=1)
      奇数行用。
    • =FILTER(A2:A100,MOD(SEQUENCE(ROWS(A2:A100)),2)=0) 
      偶数行用。

VBA コードで列を1 行おきに分割する

自動化を好む方、データセットが大規模な場合、またはこの作業を定期的に行う必要がある場合は、VBA マクロを使って列を交互に行ごとに2 つに効率よく分割できます。VBA は、より細やかな制御が必要なときや、さまざまなデータサイズに応じて処理をカスタマイズしたい場合に最適です。

VBA による解決策の使用手順は次のとおりです。

1。Excel でAlt + F11キーを押すと、Microsoft Visual Basic for Applicationsのエディターウィンドウが開きます。

2挿入>モジュールをクリックして空白のコーディングペインを表示し、次のコードをモジュールウィンドウにコピー&ペーストしてください。

VBA コード:列を1 行おきに2 つの列に分割する

Sub SplitEveryOther()
'Updateby Extendoffice
Dim Rng As Range
Dim InputRng As Range, OutRng As Range
Dim index As Integer
xTitleId = "KutoolsforExcel"
Set InputRng = Application.Selection
Set InputRng = Application.InputBox("Range :", xTitleId, InputRng.Address, Type:=8)
Set OutRng = Application.InputBox("Out put to (single cell):", xTitleId, Type:=8)
Set OutRng = OutRng.Range("A1")
num1 = 1
num2 = 1
For index = 1 To InputRng.Rows.Count
    If index Mod 2 = 1 Then
        OutRng.Cells(num1, 1).Value = InputRng.Cells(index, 1)
        num1 = num1 + 1
    Else
        OutRng.Cells(num2, 2).Value = InputRng.Cells(index, 1)
        num2 = num2 + 1
    End If
Next
End Sub	

3F5キーを押してマクロを実行すると、分割したいデータ範囲を選択するよう促すプロンプトボックスが表示されます。対象セルを選択してOKをクリックしてください。

VBAでデータ範囲を選択するための入力ボックスのスクリーンショット

4。次に、2 つ目のプロンプトが表示され、分割結果を配置する出力セルの開始位置を選択するよう求められます。既存のデータを上書きしないように、空いているセルをリスト配置エリアの開始位置として指定してください。

出力セル選択プロンプトのスクリーンショット

5OKをクリックすると、マクロが指定した出力セルから開始され、元の列を交互に行ごとに2 つの列に分割します。出力結果を確認し、完全性と正確性をチェックしてください。

他の行ごとに2列に分割されたデータのスクリーンショット

この VBA ソリューションのメリットは、繰り返し作業や大規模なデータセットを高速かつ自動化できる点にあります。ただし、出力セルを慎重に選ばないと、VBA の操作によって既存データが上書きされる可能性があるため、マクロを実行する前に必ず作業内容を保存してください。エラーや予期しない結果が発生した場合は、「範囲を選択してください」を再度確認し、結合セルや非表示の行が結果に影響していないかをチェックしてください。

ヒント:データセットに数式や特殊な書式が含まれている場合、マクロは表示値のみをコピーし、セルの書式は転送されません。分割後は、必要に応じて調整してください。


Kutools for Excel で列を1 行おきに分割する

数式や VBA を使わずにさらに効率的な方法をお探しですか?範囲の変換ユーティリティを備えたKutools for Excel なら、列を1 行おきに分割する作業が驚くほど簡単になります。グラフィカルインターフェースで直感的に操作でき、手動設定なしにスピーディーな結果が得られるため、特に GUI 派のユーザーに最適です!

Kutools for Excelは300 以上の高度な機能を提供し、複雑な作業を効率化して、創造性と生産性を高めます。AI 機能と統合されたKutools は、正確にタスクを自動化し、データ管理を簡単にします。Kutools for Excel の詳細情報。。。         無料トライアル。。。

Kutools for Excel がすでにインストール済みの場合は、次の手順に従ってください。

1。Excel で、1 行おきに交互に2 つの列に分割したい列データを選択します。最良の結果を得るには、選択範囲内に結合セルや非表示の行がないことをご確認ください。

2。リボンで、Kutools > 範囲 > 範囲の変換をクリックすると、ユーティリティのダイアログボックスが開きます。

リボンのKutoolsタブにある「範囲の変換」オプションのスクリーンショット

3。範囲の変換ダイアログで、単一列を範囲に変換変換タイプの下で選択します。1 レコードあたりの行数セクションで、固定値を選択し、2を入力します。この設定により、Kutools は2 行ごとのデータを1 つの横方向レコード(列分割時の1 行相当)として整理します。

他の行ごとの分割用の「範囲の変換」ダイアログ設定のスクリーンショット

4OKボタンをクリックすると、分割結果を表示するセルの選択を求めるプロンプトが表示されます。既存のコンテンツを上書きしないよう、空いているセルを選択してください。

出力セル選択プロンプトのスクリーンショット

5OKをもう一度クリックすると、ユーティリティが選択したリストを即座に1 行おきの2 列に分割します。

この範囲の変換ユーティリティについて詳しくはこちらをクリックしてください。

Kutools for Excel のソリューションは、データの再構成や行から列への変換といった作業を手間なく頻繁に行いたいユーザーに最適です。特に、数式や VBA コードの記述に不慣れな方にも使いやすいツールです。

注意点:出力セルを確定する前に、結果を配置するのに十分なスペースがあるか必ずご確認ください。元のリストが長い場合、既存のセル上に分割結果が出力されると、データが上書きされて失われるおそれがあります。

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

トラブルシューティングとまとめのヒント:分割結果が正しくない場合は、選択範囲や数式の参照を再度確認してください。また、元のデータに空白セルや結合セルが含まれていないか、あるいは分割に影響を及ぼす可能性のある書式設定がないかもチェックしましょう。VBA 操作やのようなアドインを使用する前には、必ず元のデータをバックアップしてください。数式による解決策を使う際は、IFERRORで囲んで、よりクリーンな出力を実現しましょう。大規模なリストや繰り返し発生するタスクには、VBA による自動化またはKutools の活用を検討し、最大限の効率を手に入れてください。


最高の 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 日間のフル機能トライアル— 登録不要、クレジットカード不要
  • 最高のお得感— 個別アドイン購入よりお得