Excelで文字列に特殊文字を検索する方法
link:/ excel-text-formulas-excel-trim-function [TRIM]
および link:/ excel-text-formulas-how-to-use-the-clean-function-in-excel [CLEAN]
Excel関数は、文字列から印刷できない文字や余分なスペースをクリーンアップするために使用されますが、@や!などの特殊文字を含む文字列を識別するのにはあまり役立ちません。など。そのような場合、UDFを使用します。
したがって、文字列に特殊文字が含まれているかどうかを知りたい場合は、Excelの数式や関数を見つけることはできません。キーボードにある特殊文字は手動で入力することで見つけることができますが、文字列に記号が含まれているかどうかはわかりません。
特殊文字を見つけることは、データクリーニングの目的で非常に重要になる可能性があります。そして場合によっては、それを行わなければなりません。では、Excelでこれをどのように行うのでしょうか?文字列に特殊文字が含まれているかどうかをどのように知ることができますか?
そうですね、UDFを使用してそうすることができます。以下の数式は、セルに1から0およびAからZ以外の文字が含まれている場合(どちらの場合も)、TRUEを返します。特殊文字が見つからない場合は、FALSEを返します。
一般式
=ContainsSpecialCharacters(string) |
文字列:特殊文字をチェックする文字列。
この式を機能させるには、以下のコードをワークブックのモジュールに配置する必要があります。
したがって、Excelを開きます。 ALT + F11を押してVBEを開きます。 [挿入]メニューからモジュールを挿入します。以下のコードをコピーして、モジュールに貼り付けます。
Function ContainsSpecialCharacters(str As String) As Boolean For I = 1 To Len(str) ch = Mid(str, I, 1) Select Case ch Case "0" To "9", "A" To "Z", "a" To "z", " " ContainsSpecialCharacters = False Case Else ContainsSpecialCharacters = True Exit For End Select Next End Function
これで、関数を使用する準備が整いました。
チェックする文字列を含むワークブックのワークシートに移動します。
セルC2に次の数式を記述します。
=ContainsSpecialCharacters(B13) |
特殊文字が含まれているため、最初の文字列に対してTRUEを返します。数式をコピーすると、B14文字列などにFALSEが表示されます。しかし、奇妙なことに、最後の文字列「Exceltip.com」に対してTRUEが表示されます。ドット(。)が含まれているためです。しかし、なぜそうなのですか?理解するためにコードを調べてみましょう。
関数はどのように機能しますか?
`link:/ vba-for-loops-with-7-examples [For loop]`を使用して、文字列のすべての文字を反復処理しています
およびVBAの中間機能。 Mid関数は、文字列から一度に1文字を抽出し、それをch変数に格納します。
For I = 1 To Len(str) ch = Mid(str, I, 1)
今、主要な部分が来ます。 select caseステートメントを使用して、ch変数に何が含まれているかを確認します。
chに定義された値のいずれかが含まれているかどうかを確認するようにVBAに指示します。 0から9、AからZ、aからz、および “”(スペース)を定義しました。 c hにこれらのいずれかが含まれている場合、その値をFalseに設定します。
Select Case ch Case "0" To "9", "A" To "Z", "a" To "z", " " ContainsSpecialCharacters = False
リストにドット(。)がないことがわかります。これが、ドットを含む文字列に対してTRUEを取得する理由です。リストに任意の文字を追加して、数式から除外することができます。
chにリストされた文字以外の文字が含まれている場合、関数の結果をTrueに設定し、そこでループを終了します。
Case Else ContainsSpecialCharacters = True Exit For
そうそう、これがどのように機能するか。ただし、特殊文字をクリーンアップする場合は、関数にいくつかの変更を加える必要があります。
Excelで文字列から特殊文字を削除する方法は? Excelで文字列から特殊文字を削除するために、VBAで別のカスタム関数を作成しました。関数の構文は次のとおりです。
=CleanSpecialCharacters(string) |
この関数は、渡された文字列のクリーンなバージョンを返します。
新しい文字列には、特殊文字は含まれません。この関数のコードは次のようになります:
Function CleanSpecialCharacters(str As String) Dim nstr As String nstr = str For I = 1 To Len(str) ch = Mid(str, I, 1) Select Case ch Case "0" To "9", "A" To "Z", "a" To "z", " " 'Do nothing Case Else nstr = Replace(nstr, ch, "") End Select Next CleanSpecialCharacters = nstr End Function
上記のコードでコピーしたのと同じモジュールにこれをコピーします。
文字列にこの式を使用すると、次のようになります。
ドットを含むすべての特殊文字が文字列から削除されていることがわかります。
どのように機能しますか?
上記の機能と同じように動作します。唯一の違いは、この関数がすべての特殊文字をヌル文字に置き換えることです。新しい文字列を作成し、この文字列を返します。
Select Case ch Case "0" To "9", "A" To "Z", "a" To "z", " " 'ContainsSpecialCharacters = False Case Else nstr = Replace(nstr, ch, "") End Select
キャラクターのクリーンアップを免除したい場合は、コードのリストに追加できます。 Excelはその特殊文字を許します。
そうですね、これがExcelの文字列から特殊文字を見つけて置き換える方法です。これが十分に説明的で参考になったと思います。
問題の解決に役立たない場合は、以下のコメントセクションでお知らせください。
関連記事:
link:/ excel-text-formulas-excel-trim-function [ExcelでTRIM関数を使用する方法]
:* TRIM関数は、文字列をトリミングし、文字列の末尾または先頭のスペースを削除するために使用されます。これは、データのクリーニングプロセスに大いに役立ちます。
link:/ excel-text-formulas-how-to-use-the-clean-function-in-excel [ExcelでCLEAN関数を使用する方法]
:Clean関数は、文字列から印刷できない文字をクリーンアップするために使用されます。この関数は主に、インポートされた外部データをクリーンアップするためにTRIM関数とともに使用されます。
link:/ excel-text-replace-text-from-ending-of-a-string-from-variable-position [可変位置から始まる文字列の末尾からテキストを置換]
:*の末尾からテキストを置換するには文字列の場合、REPLACE関数を使用します。
REPLACE関数は、文字列内のテキストの位置を使用してテキストを置き換えます。
link:/ excel-text-formulas-check-a-list-of-texts-in-string [文字列にExcelの多くのテキストの1つが含まれているかどうかを確認する方法]
:*文字列に次のいずれかが含まれているかどうかを確認するには複数のテキストの場合、この式を使用します。 SUM関数を使用してすべての一致を合計し、ロジックを実行して、文字列に複数の文字列のいずれかが含まれているかどうかを確認します。
link:/ counting-count-cells-that-contain-specific-text [特定のテキストを含むセルを数える]
:*単純なCOUNTIF関数が魔法をかけます。特定の文字列を含む複数のセルの数をカウントするには、COUNTIF関数でワイルドカード演算子を使用します。
link:/ excel-text-formulas-excel-replace-vs-substitute-function [Excel REPLACE vsSUBSTITUTE関数]
:* REPLACE関数とSUBSTITUTE関数は最も誤解されている関数です。特定のテキストを検索して置き換えるには、SUBSTITUTE関数を使用します。 REPLACEを使用して文字列内の文字数を置き換える場合…
人気の記事:
link:/ keyboard-formula-shortcuts-50-excel-shortcuts-to-increase-your-productivity [生産性を高めるための50のExcelショートカット]
|あなたの仕事をより速くしてください。これらの50のショートカットにより、Excelでの作業がさらに高速になります。
link:/ Formulas-and-functions-introduction-of-vlookup-function [ExcelのVLOOKUP関数の使用方法]
|これは、さまざまな範囲やシートから値を検索するために使用される、Excelの最も使用され人気のある関数の1つです。 link:/ Tips-countif-in-microsoft-excel [使用方法]
link:/ forms-and-functions-introduction-of-vlookup-function [Excel]
COUNTIF関数 |この驚くべき関数を使用して、条件付きの値をカウントします。
特定の値をカウントするためにデータをフィルタリングする必要はありません。ダッシュボードを準備するには、Countif関数が不可欠です。
link:/ excel-formula-and-function-excel-sumif-function [ExcelでSUMIF関数を使用する方法]
|これは、ダッシュボードのもう1つの重要な機能です。これは、特定の条件で値を合計するのに役立ちます。