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

Excel でアスタリスク/疑問符/チルダを検索と置換する方法は?

著者Xiaoyang変更日

Excel で大規模なデータセットを処理したりテンプレートを管理したりする際、データ内にアスタリスク(*)、疑問符(?)、チルダ(~)などの特殊文字が含まれていることがあります。これらの文字はExcel の検索操作や数式においてワイルドカードやコマンド記号として解釈されるため、単に文字そのものを検索したい場合に問題が発生することがあります。たとえば、他システムからのデータエクスポートやユーザー入力によって、ファイル名、製品コード、説明テキストなどにこれらの記号が含まれているケースも少なくありません。

Excel の[検索と置換]ダイアログボックスでこれらの特殊文字を直接入力して検索や置換を行うと、期待通りの結果が得られないことがあります。その理由は、Excel が「*」および「?」をワイルドカードとして解釈するためです。「*」は任意の文字列に、「?」は1 文字に一致します。一方、チルダ「~」は直後に続く文字をリテラル(文字そのもの)として扱うエスケープ文字として機能します。これらの文字をデフォルトのまま検索に使用すると、意図せず大量のデータが変更されてしまう可能性があるため、ご注意ください。

本記事では、Excel でアスタリスク、疑問符、チルダを迅速かつ正確に検索・置換する方法を詳しく解説し、さまざまな作業シナリオに応じた柔軟な解決策をいくつかご紹介します。

Excel でアスタリスク/疑問符/チルダを検索と置換する方法

Excel 数式:SUBSTITUTE 関数で特殊文字を置換

VBA マクロ:コードで特殊文字を検索と置換


Excel でアスタリスク/疑問符/チルダを検索と置換

ワークシート内のこれらの特定の文字(先頭、末尾、または他のテキスト内に含まれていても)を検索・置換するには、「検索対象」ボックスでチルダ(~)を接頭辞として付ける必要があります。これにより、Excel はワイルドカードや特殊コマンドではなく、実際の文字として処理します。この方法はシンプルな表でのデータクリーニングや再フォーマットに効果的ですが、大規模な範囲で自動化や繰り返し処理が必要な場合には制限があるかもしれません。

1。特殊文字を検索・置換したいセル範囲を選択します。ワークシート全体を対象にする場合は、次の手順に進む前に任意のセルをクリックしてください。特定の範囲のみを置換する場合は、その領域をあらかじめ選択しておきます。

2。「ホーム」タブに移動し、「検索と選択」→「置換」をクリックするか、便利なショートカット「Ctrl + H」を使って「検索と置換」ダイアログボックスを開きます。大規模なデータセットを扱う際は、ショートカットを使えば時間を節約でき、繰り返しのクリックも減らせます。

「検索と置換」ダイアログ ボックスを開く方法を示すスクリーンショット

3。「検索と置換」ダイアログで、アスタリスクを検索する場合は「~*」を、「検索対象」ボックスに入力してください。疑問符の場合は「~?」、チルダの場合は「~~」を入力します。「置換後の文字列」ボックスには、置き換えに使用する値や文字を入力すれば、これらの特殊文字をテキストや数字に変換したり、ボックスを空白のままにして簡単に削除したりできます。

「検索する文字列」と「置換後の文字列」ボックスを指定しているスクリーンショット

4。すべて置換」ボタンをクリックして操作を実行してください。Excel は、置換が何件行われたかを示す確認ダイアログを表示しますので、操作が意図したセルにのみ影響を与えたかどうかを慎重に確認しましょう。

元のデータのスクリーンショット矢印のスクリーンショット置換後の結果を示すスクリーンショット

5。最後に、変更内容を確認した後、「検索と置換」ダイアログボックスを閉じてください。

注:同じ範囲内で複数の種類の特殊文字を置換する場合は、各文字ごとにこの手順を繰り返す必要があります。数式を含むデータには特に注意が必要です。数式の一部を置換すると、エラーが発生する可能性があります。大規模な置換を行う前に、データ損失や予期しない結果を防ぐため、ワークシートのバックアップを作成することを強くおすすめします。

ヒント:リテラルのチルダを検索するには、「~~」を「検索対象」フィールドに入力してください。疑問符を置換する場合は「~?」と入力します。これにより、複雑なテキスト文字列や製品コード内でも、変更対象を正確に制御できます。

メリット:この組み込み機能は、自動化や高度なロジックが不要な場合に、シンプルで効果的な簡易置換を実現します。

制限事項:各置換操作は手動で実行する必要があるため、多数のシートやファイルにわたって繰り返し置換を行うのにはあまり向いていません。

トラブルシューティング:一致するものが見つからない場合は、「検索対象」ボックスで、特殊文字の前にチルダ(~)を正しく入力しているか再度ご確認ください。数式への影響を避けるため、ワークシート全体ではなく、特定の列またはテキストセルのみを対象にデータをフィルターすることをおすすめします。


Excel 数式:SUBSTITUTE 関数で特殊文字を置換

数式ベースのアプローチを好む場合は、Excel のSUBSTITUTE 関数を使えば、ワークシートのセル内で文字を動的に置換できます。この方法は、元のデータをそのまま残しつつ、クリーンアップ済みまたは更新済みのテキストを別の列に表示したいときに特に便利です。変更を元に戻したりレビューしたりする必要がある場面や、数百〜数千件ものアイテムを含むリストやテーブルを処理する場合にも、簡単に活用できます。

1。たとえば、指定した列の値 A に含まれるアスタリスク「*」を置き換えたい場合、B1 などの対象セルに次の数式を入力します。

=SUBSTITUTE(A1,"*","replacement")

この数式は、セル A1 内のすべてのアスタリスクを「replacement」というテキストに置き換えます。「replacement」は任意のテキストや数値に変更できます。また、アスタリスクを単純に削除したい場合は、空文字列(「」)に置き換えてください。

2。Enter キーを押して数式を確定します。他の行にもこの数式を適用するには、セル B1 を選択してコピー(Ctrl+C)し、数式を貼り付けたい範囲を選択して貼り付け(Ctrl+V)してください。Excel は自動的に参照を調整し、各行で列 A の値を処理します。

3。疑問符「?」やチルダ「~」を置換するには、同様の数式を使います。例:

=SUBSTITUTE(A1,"?","replacement")
=SUBSTITUTE(A1,"~","replacement")

より複雑な置換ニーズ(たとえば、テキストから「*」と「?」の両方を削除するなど)には、複数の SUBSTITUTE 関数を組み合わせて対応できます。

=SUBSTITUTE(SUBSTITUTE(A1,"*",""),"?","")

これは、ある SUBSTITUTE 関数を別の SUBSTITUTE 関数の中にネストして、両方の記号を一度に削除する方法です。

メリット:数式を使った解決法なら、ソースデータが変更されると自動で更新され、横並びの比較が可能で、何度使っても安心です。

制限事項:結果は元のデータとは別に生成されます。元の値を上書きしたい場合は、結果をコピーして「値として貼り付け」る必要があります。

トラブルシューティング:SUBSTITUTE 関数はプレーンな値に対してのみ機能します。データに数式や配列数式が含まれている場合、または大文字小文字を区別して置換したい場合は、追加の手順や補助列が必要になることがあります。文字が期待通りに置換されない場合は、それが実際の標準文字かどうか、あるいは他の言語やシステムエンコーディング由来の類似記号ではないかを確認してください。


VBA マクロ:コードで特殊文字を検索と置換

複数のシートや大規模なデータセット全体でアスタリスク(*)、疑問符(?)、チルダ(~)を頻繁に検索・置換する必要がある場合は、カスタム VBA マクロでプロセスを自動化するのが非常に効果的です。このアプローチはバッチ処理や繰り返しタスクに最適で、手動操作や数式ベースの方法をはるかに上回る柔軟性を実現します。マクロは、すべてのセル、特定の列、複数のワークブック全体、さらには選択したワークシート内のみといった条件に応じて自由にカスタマイズできます。

1。まず、Excel で「開発」タブを有効にします(まだ表示されていない場合)。次に、「開発」タブから「Visual Basic」をクリックして VBA エディターを開きます。VBA ウィンドウで「挿入」→「標準モジュール」をクリックし、以下のコードをモジュールに貼り付けます。

Sub ReplaceSpecialCharacters()
    Dim ws As Worksheet
    Dim rng As Range
    Dim oldChar As String
    Dim newChar As String
    
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    
    Set rng = Application.Selection
    Set rng = Application.InputBox("Select range to process", xTitleId, rng.Address, Type:=8)
    
    oldChar = Application.InputBox("Enter the character to replace (*, ?, or ~)", xTitleId, "", Type:=2)
    newChar = Application.InputBox("Enter the new character or value", xTitleId, "", Type:=2)
    
    For Each cell In rng
        If Not IsEmpty(cell.Value) And VarType(cell.Value) = vbString Then
            cell.Value = Replace(cell.Value, oldChar, newChar)
        End If
    Next cell
End Sub

2。マクロを実行するには、カーソルをマクロ内に置いた状態で実行ボタン(実行)ボタンをクリックします。処理対象の範囲を選択するプロンプトが表示された後、置換する文字を指定してください(必要に応じて引用符なしで「*」、「?」、または「~」を入力)。最後に、置換後の値または文字を入力すると、マクロは選択した範囲内の各セルをそのように処理します。

メリット:VBA による自動化は、大量のデータ処理や複数シートにまたがる操作、さらにはより複雑なデータ処理ワークフローへの組み込みに最適です。繰り返し行われる作業や大規模な一括置換タスクにおいて、時間を大幅に節約できます。

制限事項:このコードは元のセル値を直接変更するため、マクロを実行する前に必ずバックアップを取るか、コピーを作成しておいてください。VBA 実行後にはExcel の組み込み「元に戻す」機能が利用できないため、データ範囲と置換パラメーターを慎重に確認してください。また、マクロを使用するにはExcel でマクロ機能を有効にする必要がありますが、セキュリティ設定が厳しい職場環境では使用が制限される場合があります。

トラブルシューティング:マクロ実行中にエラーが発生した場合は、マクロが有効になっており、かつ対象セルにワークシート保護がかかっていないことをご確認ください。入力ボックスには置換したい文字のみを入力し、ワイルドカードやエスケープシーケンスは使用しないでください。マクロが置換を行わない場合は、選択範囲に変更を加えたいセルが含まれているかを再度ご確認ください。


関連記事:

テキストボックス内の特定のテキストを検索して置換するには、どうすればよいですか?

Excel でグラフのタイトルのテキストを検索して置換するには、どうすればよいですか?

Excel で複数のハイパーリンクのパスを一括で変更する方法は?


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