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

Excel でセルの値に基づいて行を自動的にフィルターするには?

著者Xiaoyang変更日

Excel では、標準のフィルター機能を使えば、手動で選択した条件に基づいてデータをすばやく絞り込むことができます。しかし、特定のセルに値や条件を入力した瞬間にデータが自動的に更新されるようなワークフローが必要な場合もあります。たとえば、別のセルに入力したキーワードやパラメーターに基づいて、データセットが即座にフィルターされるようにしたい—これはExcel のネイティブなフィルター機能だけでは実現できません。こうした動的、つまり「自動フィルター」機能は、データレビューのプロセスを合理化し、手動でのフィルター操作にかかる時間を削減。さらに、フィルター条件をセルの値に直接連動させることで、正確性も高めます。セルの入力に基づくこのような自動フィルターメカニズムを実装したい場合は、この結果を実現するための実用的なソリューションがいくつかあります。

Excel の数式ソリューションでセルの値に基づいて行を自動フィルターする

入力したセルの値に基づいて VBA コードで行を自動フィルターする


Excel の数式ソリューションでセルの値に基づいて行を自動フィルターする

マクロを使いたくない場合や、セキュリティ設定・共同作業上の理由で VBA の使用を避けたい場合は、Excel に内蔵された数式とフィルター機能を組み合わせて、「自動フィルター」のような効果を実現できます。このソリューションは、Microsoft 365、Microsoft 2019、およびFILTERなどの動的配列関数をサポートするそれ以降のバージョンでご利用いただけます。マクロが無効になっている同僚とファイルを共有する場面や、インストール不要の軽量テンプレートで自動化を実現したい場合に特に最適です。

1。フィルター結果を表示する空白セルを選択します(例:セル)G2にカーソルを置く)。

=FILTER(A2:C20, (A2:A20=E1) * (B2:B20=E2), "No match")

2Enterキーを押して G2 に数式を入力すると、G2 から始まるスピル範囲にフィルター済みデータセットが表示されます。E1 または E2 の値を変更すると、フィルターリストが即座に更新されます。

この数式の例では、メインデータがA2:C20にあり、フィルタ条件はE1(列 A に対応)およびE2(列 B に対応)に入力されていると仮定しています。1 つの列のみでフィルターしたい場合は、論理条件をそれに応じて簡略化できます。入力された条件に一致する行がない場合、「一致なし」メッセージが表示されます。

ヒント:FILTER 関数は Microsoft 365 および一部の Microsoft 2019 以降のバージョンでご利用いただけます。古いExcel バージョンでは、数式による動的フィルターはやや複雑になるため、ヘルパー列と従来のオートフィルターや詳細フィルター機能を組み合わせる方法をご検討ください。互換性を確保するには、まずお使いのExcel バージョンをご確認ください。

このソリューションをご利用いただくと、結果はワークシート上の新しい領域に表示されるため、元の生データを保護できます。また、元のデータセットは一切影響を受けず、フィルターは表示結果にのみ適用されるため、ソースデータの表示状態には一切影響しません。

考えられるエラー:#NAME?または#SPILL!エラーが表示された場合は、互換性のあるExcel バージョンを使用していること、および結果範囲に結合セルがないことを確認してください。また、数式のスピル領域に他のデータを配置しないようにして、ブロックを回避しましょう。


入力したセルの値に基づいて VBA コードで行を自動フィルターする

データセットを操作中に、特定のセルに入力した条件に基づいてレコードを自動的にフィルターしたいことはありませんか?たとえば、セル E1 と E2 に希望する条件を入力すると、下図のようにワークシート上のデータが自動的にそれらの値に一致するようにフィルターされます。

セルに入力された値に基づいて行をフィルター処理するスクリーンショット

このような方法でフィルターを自動化するには、シンプルな VBA ソリューションを設定できます。この仕組みは、指定したフィルターセルの値が更新されるたびに自動的にトリガーされ、ダッシュボードやインタラクティブなレポート、あるいはユーザーが中央のパラメーターセルから動的フィルターを活用することを想定したテンプレートに特に効果的です。

1。セルに入力された内容に基づいて行のフィルターを自動化したいワークシートに移動します。

2。Excel ウィンドウ下部のシートタブを右クリックし、表示されるコンテキストメニューからコードの表示を選択します。すると、Microsoft Visual Basic for Applications ウィンドウが開きますので、その中の大きな空白領域(通常「コードウィンドウ」または「ワークシートモジュール」と呼ばれます)に、次の VBA コードを貼り付けてください(下図参照)。

VBA コード:入力されたセルの値に従ってデータを自動フィルターする

Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice 20160606
   If Target.Address = Range("E2").Address Then
       Range("A1:C20").CurrentRegion.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("E1:E2")
   End If
End Sub

VBAコードの使用方法を示すスクリーンショット

注記:この VBA コードでは、A1:C20がフィルターを適用するデータ範囲を示しています。E2はフィルター値(目的の条件)を入力するセルであり、E1:E2はフィルター条件として使用されるセル範囲です。これらの範囲は必要に応じて変更できますが、データとフィルター条件の位置が実際のワークシート構造を正確に反映していることを必ず確認してください。また、セルの結合は避け、正確なフィルター処理のためにデータ範囲にヘッダーが含まれていることを推奨します。

3。次に、セルE1および/またはE2にフィルター条件を入力または変更してください。Enterキーを押すと、VBA コードが自動的に実行され、指定されたデータ範囲から入力条件に一致する行のみが表示されるようフィルターされます。

値を入力した直後にフィルターがすぐに動作しないように見える場合は、ワークブックでマクロ機能が有効になっていること、および VBA コード内の範囲が現在のワークシートのレイアウトと正確に一致していることをご確認ください。複数のユーザーでご利用になる場合は、この機能を正しく動作させるために、他のユーザーにもマクロを有効にするようお知らせください。

この VBA 方式は、手動でフィルター条件を再適用するのが非効率になるような、動的パラメーター駆動型のダッシュボードやインタラクティブなデータ入力テンプレート、その他のシナリオに特に有効です。ただし、ユーザーがマクロを無効にしている場合や、VBA ベースのソリューションがコード付きファイルに固有である点にはご注意ください。

複数のユーザーが頻繁に条件を変更しており、それぞれ異なるExcel セキュリティ設定を利用している場合や、ファイルを広く共有する予定がある場合は、数式ベースの代替ソリューションやExcel アドインの導入を検討することをおすすめします。


デモ:入力したセルの値に基づいて VBA コードで行を自動フィルターする

 

複数の条件やその他の特定の条件(例:テキストの長さに基づくフィルター、大文字と小文字を区別するフィルターなど)でデータを絞り込む。

複数のフィルタ条件を組み合わせたり、テキストの長さで絞り込んだり、大文字・小文字を区別してフィルターしたり、特定の期間に基づいてデータを抽出したりするなど、より高度なフィルター操作が必要な場合、Excel の標準フィルター機能では対応できないことがあります。そんなときは、Kutools for Excelスーパーフィルター機能が、複雑なフィルター要件を簡単に、そして効率的にこなすための実用的なソリューションを提供します。この機能を使えば、以下の操作が可能になります。

  • 複数の列にわたって複数の条件を適用し、セル内の文字数に基づいてデータをフィルターします。
  • 大文字または小文字のテキストでフィルターできます。また、年、月、日、週、四半期に基づいてデータを絞り込むことも可能です。

Kutools for Excel を使用して複数の条件で日付をフィルター処理するスクリーンショット

Kutools for Excel:300 以上の実用的なExcel アドインを搭載し、30 日間のフル機能無料トライアルがご利用いただけます。今すぐダウンロードして無料トライアル!


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