メインコンテンツへスキップ

Kutools for Office — 1つのスイート、5つのツールで、もっと多くのことを成し遂げましょう。

フィルターを無効にすることなく、Excelでフィルタリングされたデータを置き換えるにはどうすればよいですか?

Author Kelly Last modified

Excelで大規模なデータセットを扱う場合、特定のレコードやカテゴリにのみ焦点を当てるためにデータをフィルタリングすることが一般的です。しかし、フィルタリングされた行内の情報を置き換えたり更新したりする必要がある場合、フィルターをそのままで操作することが難しい課題になることがよくあります。例えば、いくつかのスペルミスを見つけたり、古いエントリを更新したり、またはフィルタリングされたデータの一部を修正する必要があるとします。通常考えられる方法としては、フィルターを無効にして置き換えを行い、その後再びフィルターを適用するというものですが、これでは作業の流れが中断され、非表示の行にあるデータを見逃したり、誤って変更してしまうリスクもあります。代わりに、フィルターを無効にせずにフィルタリングされたデータを置き換えるための、より効率的な方法が複数存在します。これにより、非表示の行はそのままに、可視範囲のみが影響を受けます。

以下では、Excelの組み込みショートカット、Kutools for Excelからの高度なユーティリティ、そしてVBAや数式を使用して動的な置き換えを行うための強力な手法について実用的な技術を探ります。それぞれの方法には、価値、ベストプラクティスのシナリオ、そして重要なヒントがあります:


フィルターを無効にせずに同じ値でフィルタリングされたデータを置き換える(Excel)

たとえば、フィルタリングされたリスト内のスペルミスを見つけたり、エントリを標準化する必要がある場合、隠し(フィルタリングされた)データを変更せずに、表示されている行だけを一度にすべて修正したいことがあります。Excelには、フィルタリングされた範囲内で表示されているセルのみを選択できる便利なショートカットがあります。この操作は、一様な置換や迅速な一括更新に非常に効果的です。

注意: この方法で置換を行うと、選択された表示セルすべてが同じ値で上書きされます。各セルに異なる入力が必要な場合は、以下の他の解決策をご検討ください。

1. 置換が必要なフィルタリングされた範囲のセルを選択します。次に Alt + ; を同時に押します。この操作により、非表示の行を無視して、表示されている(フィルタリングされた)セルのみがハイライトされます。

a screenshot of selecting only visible cells

トラブルシューティングのヒント: Alt + ; が動作しない場合は、選択範囲が実際に変更したいセルをカバーしているか、フィルターが正しく適用されているか確認してください。

2. 入力したい値を入力し、Ctrl + Enter を同時に押します。このコマンドは、選択された(表示されている)すべてのセルに新しい値を一度に入力します。

これらのキーを押すと、選択範囲内の表示されているフィルタリングされたセルが即座に新しい値に更新され、非表示の行は変更されません。

a screenshot showing the original data and replacement results

利点: 統一された置換にシンプルで迅速;アドインは不要。制約: 選択されたすべてのセルがまったく同じ値で置き換えられます。

ヒント: 操作後に Ctrl + Z を押すことで変更を元に戻すことができます。


他の範囲とデータを入れ替えてフィルタリングされたデータを置き換える

時々、フィルタリングされたデータの更新には単一の値の置き換え以上のものが必要になることがあります。たとえば、フィルタを崩すことなく、フィルタリングされた範囲を別の同じサイズの範囲と交換したい場合などです。これはデータ比較、データセットのバージョン管理、または以前の値を復元するのに特に役立ちます。Kutools for Excelの「範囲の入れ替え」機能を使用すると、この交換をスムーズに行うことができます。

Kutools for Excel - Excel向けの300以上の必須ツールを搭載。永久に無料のAI機能をお楽しみください!今すぐダウンロード!

1. Excelのリボンに行き、「Kutools > 範囲 > 範囲の入れ替え」を選択すると、「範囲の入れ替え」ダイアログが起動します。

a screenshot of enbaling the Swap Range feature of Kutools

2. ダイアログボックスの中で、最初のボックス(Swap Range1)をフィルタリングされて表示されているデータの範囲に設定し、2番目のボックス(Swap Range2)を交換したいデータ範囲に設定します。正常に交換を行うためには、両方の範囲が同じ行数と列数を持っている必要があります。

a screenshot showing how to configure the Swap Ranges dialog box

3. 「OK」をクリックします。Kutoolsはすぐに2つの範囲間の値を交換し、フィルタはそのまま保持されます。フィルタ設定は変更されず、指定されたセルの内容のみが交換されます。

この操作を行った後、交換された内容が正確であることを確認してください。この操作は、他のフィルタリングされたデータには影響しません。

a screenshot of the swapped results without affecting filtering

Kutools for Excel - 必要なツールを300以上搭載し、Excelの機能を大幅に強化します。永久に無料で利用できるAI機能もお楽しみください!今すぐ入手

利点: フィルタリングされたデータでの範囲全体の交換操作に対応;比較分析に便利。注意: 交換される範囲のサイズが一致しない場合、エラーが発生します。


フィルタリングされた行を無視してデータを貼り付けてフィルタリングされたデータを置き換える

範囲の交換に加えて、新しいデータをフィルタリングされたエリアに貼り付けたいが、表示されている(表示された)行のみを更新し、非表示の行をスキップしたい場合があります。Kutools for Excelの「可視範囲に貼り付け」機能は、フィルタリングされたリスト内の表示されているセルにのみコピーしたデータを直接貼り付ける便利な方法を提供します。これは、迅速な一括更新、データのインポート、またはワークブックの別の部分から結果をコピーする際に役立ちます。

Kutools for Excel - Excel向けの300以上の必須ツールを搭載。永久に無料のAI機能をお楽しみください!今すぐダウンロード!

1. 置換に使用したいデータを含む範囲を選択します。次に、Kutools > 範囲 > 可視範囲に貼り付けを選択してツールをアクティブにします。

a screenshot showing how to enable the Paste to Visible Range feature

2. ポップアップダイアログで、新しい値を貼り付けるフィルタリングされたデータ内の宛先範囲を選択し、「OK」をクリックして適用します。

a screenshot of selecting the filtered data range

Kutoolsは自動的に貼り付けた値を表示されている(フィルタリングされた)行にのみ一致させ、非表示の行は変更されません。フィルタリングされたリスト内の正確で対象となる置換に最適なソリューションです。

a screenshot of the final results

Kutools for Excel - 必要なツールを300以上搭載し、Excelの機能を大幅に強化します。永久に無料で利用できるAI機能もお楽しみください!今すぐ入手

利点: フィルタリングされたレコードを複数の新しい値で一度に更新するのに最適;手動で行ごとにコピー/ペーストする必要はありません。ヒント: ソースと表示されているターゲット範囲に同じ数のセルが含まれていることを確認し、データのミスアライメントを防ぎます。


VBA: 表示されている(フィルタリングされた)セルのみのデータを置き換える

特定の単語の置き換え、条件に基づいた値の更新、またはパターンベースの変更の適用など、より複雑または動的な置換操作の場合、VBAマクロを使用してフィルタリングされた範囲内の表示されているセルのみを選択的に置換することができます。このアプローチは、大規模なデータセット、カスタムロジック、または複数のシートにわたる更新の自動化に特に強力です。

適用可能なシナリオ: 複雑な置換、一括更新、またはタスクの自動化に理想的です。

利点: 柔軟でプログラミング可能、複数の置換ルールをサポート

欠点: VBAの知識が必要;変更は即時に適用されるため、ファイルを事前にバックアップしてください。

1.開発」 > 「Visual Basic」をクリックします。Microsoft Visual Basic for Applicationsウィンドウで、「挿入」 > 「モジュール」をクリックし、次のコードをモジュールに貼り付けます:

Sub ReplaceVisibleCellsOnly_Advanced()
    ' Updated by ExtendOffice
    Dim rng As Range
    Dim cell As Range
    Dim searchText As String
    Dim replaceText As String
    Dim xTitleId As String

    On Error GoTo ExitSub
    xTitleId = "KutoolsforExcel"

   
    Set rng = Application.InputBox("Select the filtered range:", xTitleId, Selection.Address, Type:=8)
    If rng Is Nothing Then Exit Sub

 
    searchText = Application.InputBox("Enter the text/value to be replaced:", xTitleId, "", Type:=2)
    If searchText = "" Then Exit Sub
    replaceText = Application.InputBox("Enter the new text/value:", xTitleId, "", Type:=2)

    On Error Resume Next
    For Each cell In rng.SpecialCells(xlCellTypeVisible)
        If Not IsError(cell.Value) Then
            If InStr(1, cell.Value, searchText, vbTextCompare) > 0 Then
                cell.Value = Replace(cell.Value, searchText, replaceText, , , vbTextCompare)
            End If
        End If
    Next cell
    On Error GoTo 0

    MsgBox "Replacements completed in visible cells.", vbInformation, xTitleId
ExitSub:
End Sub

2. クリックする Run button 実行 ボタンを押してマクロを実行します。まず、フィルタリングされた範囲を選択します。次に、置換したい値と新しい値を入力します。マクロは表示されているセルにのみ置換を適用し、非表示の行は変更されません。

注意とヒント:

  • フィルタリングされた範囲に数式が含まれている場合、このマクロはそれらを新しい値で上書きします。データを事前にバックアップすることを検討してください。
  • 表示されているセルに関するエラーが発生した場合、選択範囲がフィルタリングされており、表示されている行が含まれていることを確認してください。
  • この方法は、テキストおよび数値のどちらにも有効です。より高度なシナリオの場合、ReplaceInStrなどの文字列関数を使用してコードを拡張します。

Excel数式: 動的にフィルタリングされたデータを処理または置き換える

行が表示されているかどうか(つまり、フィルタリングされていないか)に基づいて「置換」または表示される値を変更する数式駆動型の方法が必要な場合、SUBTOTALIFIFERRORのような条件付きロジックの組み合わせを使用できます。このアプローチは、元のデータを変更せずに動的なレポートや視覚的な置換に最適です。

適用可能なシナリオ: 動的なサマリー、条件付きエクスポート、並列置換

利点: コード不要、フィルタ対応、非破壊的

欠点: 元のデータを変更しない;結果はヘルパーカラムに表示される

1. あなたのデータがA2:A100の範囲にあると仮定します。隣接するセル(例:B2)に次の数式を入力します:

=IF(SUBTOTAL(103, OFFSET(A2, 0, 0)), IF(A2 = "oldvalue", "newvalue", A2), "")

説明:

  • SUBTOTAL(103, OFFSET(A2, 0, 0))は、行が表示されている場合1を返し、非表示の場合は0を返します。
  • 表示されている場合でかつA2「旧値」に等しい場合、「新値」を表示;そうでなければ、A2の値を表示します。
  • 行がフィルタリングされている場合、数式は空白を返します。

2. Enterを押して数式を下にドラッグします。このロジックは動的に表示行に適用されます。結果を確定させるには、ヘルパーカラムをコピーし、特殊貼り付け → 値を使用して元のデータを上書きします。

高度なヒント:

  • SEARCHSUBSTITUTE、またはREPLACEなどの関数を使用して、テキストパターンに基づいた部分的または条件付きの置換を実行できます。
  • 特に本番用のワークブックでは、特殊貼り付け → 値を使用して元のデータを上書きする前に、必ず結果を確認してください。

デモ: フィルターを無効にせずにExcelでフィルタリングされたデータを置き換える

 
Kutools for Excel: あなたの指先に 300 以上の便利なツールが集結!永久無料のAI機能をお楽しみください!今すぐダウンロード!

関連記事:


最高のオフィス業務効率化ツール

🤖 Kutools AI Aide:データ分析を革新します。主な機能:Intelligent Executionコード生成カスタム数式の作成データの分析とグラフの生成Kutools Functionsの呼び出し……
人気の機能重複の検索・ハイライト・重複をマーキング空白行を削除データを失わずに列またはセルを統合丸める……
スーパーLOOKUP複数条件での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でタブによる編集・閲覧を実現
  • 新しいウィンドウを開かず、同じウィンドウの新しいタブで複数のドキュメントを開いたり作成できます。
  • 生産性が50%向上し、毎日のマウスクリック数を何百回も削減!

全てのKutoolsアドインを一つのインストーラーで

Kutools for Officeスイートは、Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proをまとめて提供。Officeアプリを横断して働くチームに最適です。

Excel Word Outlook Tabs PowerPoint
  • オールインワンスイート — Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proが含まれます
  • 1つのインストーラー・1つのライセンス —— 数分でセットアップ完了(MSI対応)
  • 一括管理でより効率的 —— Officeアプリ間で快適な生産性を発揮
  • 30日間フル機能お試し —— 登録やクレジットカード不要
  • コストパフォーマンス最適 —— 個別購入よりお得