表示されているセルのみに貼り付け:Excel で非表示の行をスキップ
著者Xiaoyang•変更日
Excel には長年にわたりユーザーを悩ませ続けてきた、よく知られた制限があります。データをコピーしてフィルター適用済み(非表示の行がある)リストに貼り付けようとすると、Excel は非表示の行にも貼り付けてしまい、データが破損してしまうのです。この問題のせいで、ユーザーは何百時間もの再作業やデータ復旧を余儀なくされてきました。
根本的な問題は、Excel が「表示セルのみをコピー」する簡単な方法(Alt+; や「ジャンプ」→「条件を選択」)を提供している一方で、「可視セルにのみ貼り付け」する機能が標準で搭載されていない点にあります。フィルター適用範囲に貼り付ける際、Excel は選択範囲の左上のセルから連続的に貼り付けを行い、行の表示・非表示状態を一切考慮しません。
以下では、フィルター適用済みの表示行にのみデータを貼り付けたり入力したりするための、実用的な方法をいくつかご紹介します。

表示されているセルのみに同じ値を貼り付けます
フィルター適用済みのリストに同じ値(例:すべての表示行に同じステータス、備考、カテゴリを追加)を入力したい場合、1 行ずつ貼り付ける必要はありません。Excel では表示されているセルのみを選択できるため、非表示の行は自動的にスキップされます。
この方法は、フィルターを適用した後で特に便利です。たとえば、「地域」列を「東部」のみ表示するようにフィルターした後でステータスに「完了」などの同じ値を入力しても、フィルターによって非表示になっている行には影響しません。
- フィルター適用済みの列で貼り付け先のセルを選択します。
- 表示されているセルのみを選択するには、Alt + ;キーを押してください。スクリーンショットを参照:

- 次に、入力したい値を直接入力し、Ctrl + Enterキーを同時に押すと、Excel は表示されているセルのみに入力し、非表示の行はスキップされます。

注記
- この方法は、すべての表示セルに同じ値を入力したい場合に最適です。
- 表示行に異なる値のリストを貼り付ける必要がある場合は、以下の方法をご利用ください。
表示されているセルのみに異なる値を貼り付けます
フィルター適用済みのテーブルに異なる値のリストを貼り付ける際には、少し工夫が必要です。たとえば、「地域」列で「東部」のみを表示するようにフィルターをかけた後、「完了」「保留中」「出荷済み」「承認済み」などのステータス値を表示されている行にのみ貼り付けたい場合、各値が確実に次の表示セルに貼り付けられ、非表示の行が一切変更されない安全な方法が求められます。
方法1:ヘルパー列を使用
フィルターをかけたリストに異なる値のリストを貼り付ける必要がある場合、通常のコピー&ペーストでは正しく動作しないことがあります。これは、フィルターで表示されている行が連続していないためです。非表示の行を上書きしないようにするには、2 つの補助列を使って一時的に表示中の行を並べ替え・グループ化し、新しいデータを貼り付けた後、元の順序に戻すことができます。
手順1:フィルターを解除し、並び順用のヘルパー列を追加します
- まず、データ > フィルターをクリックして、既存のフィルターを解除します。
- 次に、データテーブルの横に補助列を追加して元の行順を記録します。たとえば、セル D2 に「1」、セル D3 に「2」と入力し、D2:D3 を選択してフィルハンドルをデータの最終行までドラッグします。この補助列は、並べ替えと貼り付け後に元の順序を復元する際に使用します。スクリーンショットをご参照ください。

手順2:データをフィルターし、表示されている行にマークを付けます
- 再度、データ > フィルターをクリックしてフィルターを適用し、条件に基づいて列を絞り込みます。たとえば、「東」のレコードのみを表示するように設定できます。
- 別の補助列で、最初の表示行に次の数式を入力します:
=ROW() - 次に、この数式を表示されている行全体にフィルします。これにより、フィルター済みのレコードがマークされ、次のステップでまとめてグループ化できるようになります。

手順3:フィルターを解除し、表示行用ヘルパー列で並べ替えます
再度フィルターを解除し、次に ROW()関数の結果を含むヘルパー列を使ってテーブルを昇順に並べ替えます。これにより、フィルターされたレコードが連続した範囲にまとまります。

手順4:新しいデータを貼り付けます
新しいデータをコピーして、まとめられたレコードに貼り付けます。貼り付け先の行が連続しているため、Excel は他のレコードに影響を与えることなく、正確にデータを貼り付けられます。

手順5:元の並び順を復元します
新しいデータを貼り付けた後、元の並び順を保持するためのヘルパー列を使ってテーブルを昇順に並べ替えます。これにより、ワークシートの行の配置が元の状態に戻ります。

手順6:ヘルパー列を削除します
最後に、ヘルパー列を削除するか、内容をクリアしてください。結果を確認するには、再度フィルターを適用できます。フィルター条件に一致したレコードのみが更新され、他のすべての行は変更されません。スクリーンショットをご参照ください。

注記:
この方法では、隣接していない表示セルに直接貼り付けるわけではありません。代わりに、フィルターされた行を一時的に連続した範囲にまとめてから新しいデータを安全に貼り付け、その後、ヘルパー列を使って元の行順序を復元します。
メリットとデメリット:
メリット:
- 異なる値で動作します
- 非表示行を上書きしません
- 古いバージョンのExcel にも対応
- 元の順序を復元可能に保持
欠点:
- より多くの手順が必要
- 補助列が正しく設定されていないと、ミスをしやすい
- 非常に大規模なデータセットには不向き
- 一時的に行の順序が変更される
方法2:VBA コードを使用する
フィルターをかけた行に頻繁に異なる値を貼り付ける必要がある場合は、VBA がより直接的で効率的な解決策です。
このマクロは、ソース範囲から値を取得し、フィルターされた対象範囲の表示セルにのみ貼り付け、非表示の行はスキップします。
- Excel でALT + F11キーを押すと、Microsoft Visual Basic for Applicationsウィンドウが開きます。
- 次に、挿入>標準モジュールをクリックし、モジュールウィンドウに次のコードを貼り付けます。
Sub PasteIntoVisibleCellsOnly() Dim SourceRange As Range Dim TargetRange As Range Dim VisibleCells As Range Dim Cell As Range Dim i As Long On Error Resume Next Set SourceRange = Application.InputBox("Select the source values to copy:", Type:=8) Set TargetRange = Application.InputBox("Select the filtered target range:", Type:=8) On Error GoTo 0 If SourceRange Is Nothing Or TargetRange Is Nothing Then Exit Sub On Error Resume Next Set VisibleCells = TargetRange.SpecialCells(xlCellTypeVisible) On Error GoTo 0 If VisibleCells Is Nothing Then MsgBox "No visible cells found in the target range.", vbExclamation Exit Sub End If If SourceRange.Cells.Count > VisibleCells.Cells.Count Then MsgBox "The source range contains more cells than the visible target range.", vbExclamation Exit Sub End If i = 1 For Each Cell In VisibleCells If i <= SourceRange.Cells.Count Then Cell.Value = SourceRange.Cells(i).Value i = i + 1 Else Exit For End If Next Cell MsgBox "Data has been pasted into visible cells only.", vbInformation End Sub - F5キーを押すか、実行ボタンをクリックしてこのコードを実行してください。すると、コピーしたい元の値を選択するよう促すプロンプトボックスが表示されます。スクリーンショットを参照してください:

- 次に、OKをクリックすると、別のダイアログボックスが表示されます。そこに、データを貼り付けたいフィルター適用済みのセル範囲を選択してください。スクリーンショットを参照:

- OKをクリックすると、非表示の行には影響を与えず、表示されている行にのみデータが貼り付けられます。スクリーンショットを参照してください:

メリット:
- 異なる値に最適です。
- フィルターで除外された行を自動的にスキップします。
- 繰り返しのタスクにぴったりです。
欠点:
- VBA が必要です。
- ブックを .xlsm 形式で保存する必要があります。
- マクロを有効にしてください。
方法3:Kutools for Excel を使用する
フィルターをかけた行に、より素早く・初心者にも使いやすい方法でデータを貼り付けたいなら、Kutools for Excel がおすすめです。補助列や VBA コードを使う代わりに、表示中のセルに直接データを貼り付け、非表示の行を自動的にスキップする機能を提供します。フィルターをかけたテーブルを頻繁に扱い、非表示データを誤って上書きするリスクを避けたいユーザーに最適な選択肢です。
- フィルターを適用したリストにコピー&ペーストしたいソースデータの範囲を選択し、次にKutools > 範囲 > 可視範囲に貼り付け > すべて / 値のみ貼り付けをクリックしてください。スクリーンショットを参照:
ヒント:
- 値のみ貼り付けオプションを選択すると、フィルター済みのデータに値だけが貼り付けられます。
- 「すべてAll」オプションを選択すると、値と書式の両方がフィルター済みデータに貼り付けられます。

- 次に、可視範囲に貼り付けのプロンプトボックスが表示されるので、新しいデータを貼り付けたいセルまたはセル範囲をクリックしてください。スクリーンショットを参照:

- 次に、OKボタンをクリックすると、新しいデータはフィルター適用中のリスト内にのみ貼り付けられ、非表示の行のデータはそのまま保持されます。
表示行のみにデータを貼り付け(Kutools for Excel 使用)
Excel でフィルター済みのデータを操作する際、通常のコピー&ペーストでは非表示行に影響を与えたり、非連続の表示セルへの貼り付けが失敗したりすることがあります。Kutools for Excel はシンプルな可視範囲に貼り付け機能を提供し、非表示行を自動的にスキップして表示行にのみデータを貼り付けるのに役立ちます。
非表示行を自動的にスキップ
フィルター後の表示行に値を貼り付け、非表示のデータを上書きしません。
異なる値を簡単に貼り付け
異なる値のリストを、正しい順序でフィルターされた行に素早く貼り付けましょう。
数式や VBA 不要
複雑な補助数式、並べ替え手順、マクロコードは一切不要。選択して貼り付けるだけで、あっという間に完了します。
フィルター済みテーブルに最適
ステータス、備考、カテゴリ、レビュー結果、またはフィルター済みレコードを一括更新するのに最適です。
フィルター適用リストへの貼り付け時の重要な注意点
- 通常の貼り付けでは期待通りに動作しない場合があります
リストをフィルターすると、表示される行は多くの場合、非隣接になります。その場合、Excel は非連続の表示セルにコピーしたデータを正しく貼り付けられないことがあります。
- Alt + ; を慎重に使用してください
Alt + ; は表示されているセルのみを選択するショートカットで、同じ値や数式を一括入力するのに最適です。
異なる値のリストを貼り付ける際は、VBA または補助数式をご利用いただくのが安全です。
- 必ず事前にデータをバックアップしてください
フィルター済みデータに貼り付ける前に、ワークシートのコピーを作成しておきましょう。これで、誤って上書きしてしまう心配がありません。
- 元データと貼り付け先の件数を確認してください
異なる値を貼り付ける際は、ソースの値の数と貼り付け先のセル数が一致していることをご確認ください。
結論
フィルター適用済みのリストにデータを貼り付けて非表示の行をスキップする最適な方法は、貼り付ける内容によって異なります。
- 同じ値を入力するには、Alt + ; を押した後、Ctrl + Enter を押してください。
- 値が異なる場合は、ヘルパー列または VBA を使用して、各値を表示されている行にのみ確実にマッチさせてください。
- 視覚的で簡単な解決策をお探しの場合は、Kutools for Excel がフィルター適用済みセルや表示セルの操作をより効率的にサポートします。
最高の Office 業務効率化ツール
| 🤖 | KUTOOLS AI Aide:次に基づいてデータ分析を革新します:インテリジェント実行 | コード生成| カスタム数式作成 | データ分析とチャート作成| 拡張機能呼び出し… |
| 人気機能:検索、ハイライト、または重複をマーキング | 空白行を削除する | データを失うことなく列の結合またはセルを | 数式を使用しない四捨五入... | |
| スーパー LOOKUP:複数条件 VLookup | 複数値 VLookup | 複数シート間 VLookup | ファジーマッチ.... | |
| 高度なドロップダウンリスト:ドロップダウンリストをすばやく作成 | 連動型ドロップダウンリスト | 複数選択ドロップダウンリスト.... | |
| 列マネージャー:指定した数の列を追加|列の移動|非表示列の表示状態を切り替え|範囲と列を比較... | |
| 注目の機能:グリッドフォーカス | デザインビュー |強化された数式バー | ワークブックとシートマネージャー | リソースライブラリ(自動テキスト)| 日付ピッカー | ワークシートの統合 | 暗号化/セルの復号化 | リストからメール送信 | スーパーフィルター | 特殊フィルタ(太字のフォントを持つセルをフィルタリング/斜体/取り消し線。。。) 。。。 | |
| トップ15 ツールセット:12 テキストツール(テキストの追加、特定の文字を削除、...)| 50+チャートタイプ(ガントチャート、...)| 40+ 実用的数式(誕生日に基づいて年齢を計算します、...)| 19 挿入ツール(QR コードを挿入、パスから画像を挿入、...)| 12 変換ツール(単語に変換する、為替レートの変換、...)| 7 結合と分割ツール(高度な行のマージ、セルの分割、...)|他にも多数 |
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 アプリを横断して作業するチームに最適です。
- オールインワンスイート— Excel、Word、Outlook & PowerPoint 用アドイン+Office Tab Pro
- インストーラー1 つ、ライセンス1 つ— 数分でセットアップ可能(MSI 対応)
- 連携してさらにパワーアップ— Office アプリ全体で生産性を合理化
- 30 日間のフル機能トライアル— 登録不要、クレジットカード不要
- ベストバリュー— 個別アドイン購入よりお得








