この投稿では、Excelで非印刷文字を削除する方法を紹介します。ASCII文字表(コンピュータ間の通信用の標準データエンコーディング形式)の最初の32文字は非印刷文字です。これらの文字は表示(または印刷)されませんが、データの書式設定方法をアプリケーションに指示します。バックスペース(ASCIIコード08)、キャリッジリターン(ASCIIコード13)、水平タブ(ASCIIコード09)、および改行(ASCIIコード10)は、非印刷文字の例です。
外部ソースからMicrosoft Excelにデータをインポートまたは貼り付けると、ワークシートに非印刷文字が含まれる場合があります。Excelでは、そのような文字はボックスで表されます。この投稿では、これらの文字を識別してExcelデータから削除する方法を紹介します。
Excelで非印刷文字を削除する方法
Excelで非印刷文字を削除するための次の2つの方法について説明します。
- 非印刷文字を削除するためにSUBSTITUTE()関数を使用する
- 非印刷文字を削除するためにCLEAN()関数を使用する
これらの2つの方法について詳しく見てみましょう。
Excelで非印刷文字を削除するためにSUBSTITUTE()関数を使用する
Excelには、指定された文字のASCIIコードを返すCODE()関数があります。これは基本的に、数値コードを文字に変換するために使用されるCHAR()関数の逆です。CODE()関数とCHAR()関数を使用して非印刷文字を識別したら、SUBSTITUTE()関数を使用して、文字を空の文字列で置き換える(または削除)することができます。
CODE()関数の構文は次のとおりです。
CODE(text)
- ここで、textは、ASCII文字コード(最初の文字)が必要なテキスト文字列です。
CHAR()関数の構文は次のとおりです。
CHAR(number)
- ここで、numberは1~255(拡張ASCII文字コード)の数値です。
そして、SUBSTITUTE()関数の構文は次のとおりです。
SUBSTITUTE(text, old_text, new_text, [instance_num])
ここで、
- text は、部分文字列を置き換える必要があるテキスト文字列を参照します。
- old_text は、new_textで置き換える必要がある部分文字列を参照します。
- new_text は、old_textを置き換える部分文字列を参照します。
- [instance_num] は、new_textで置き換える必要があるold_textのインスタンスを参照します。この引数が指定されていない場合、old_textの各出現はnew_textで置き換えられます。
セルA1に例となる文字列があるワークシートがあるとします(上の画像を参照)。文字列には、右端端に非印刷文字が含まれています。文字列からこの文字を削除するには、上記の関数を次のように使用します。
セルB1にカーソルを置きます。上部の数式バーに次の数式を入力します。
=CODE(RIGHT(A1))
注:文字は元のテキスト文字列の右側に表示されるため、RIGHT()関数を使用して文字列から最後の文字を取得し、CODE()関数を使用してそのASCII値を取得しました。
Enterキーを押すと、上記の関数は11を返します。これは、この例で使用される垂直タブのASCIIコードです。
次に、セルA2にカーソルを置いて、次の数式を入力します。
=SUBSTITUTE(A1,CHAR(11),"")
関数の結果として、非印刷文字が元の文字列から削除されます。
Excelで非印刷文字を削除するためにCLEAN()関数を使用する
ExcelのCLEAN()関数は、指定されたテキスト文字列からすべての非印刷文字を削除します。これは、Excelで非印刷文字を削除する最も簡単で直接的な方法です。
CLEAN()関数の構文は次のとおりです。
CLEAN(text)
- ここで、textは、非印刷文字を削除する必要があるテキスト文字列を表します。
上記の例では、CLEAN()関数を使用して、次のように非印刷文字を削除できます。
=CLEAN(A1)
簡単ですよね?しかし、後で説明する理由は、ASCII文字表で0~31の文字コードを持つ文字のみを削除するからです。そのため、外部ソースからデータをコピー/貼り付けするときに紛れ込む可能性のある改行禁止スペース( )は削除されません。
改行禁止スペースとは、ワードプロセッサやその他のアプリケーションソフトウェアの「自動改行」機能によって改行できないスペースのことです。テキスト文字列からすべての非印刷文字と改行禁止スペースを削除する場合は、CLEAN()関数、SUBSTITUTE()関数、およびTRIM()関数を組み合わせて使用します。
TRIM()関数は、指定された文字列の両端のスペースをトリミングするために使用することができます。これは、Excelの不規則なスペースを修正するために使用されます。
TRIM()関数の構文は次のとおりです。
TRIM(text)
- ここで、textは、前後のスペースを削除する必要があるテキスト文字列を参照します。
160は改行禁止スペースのASCIIコードです。CHAR()関数を使用して、改行禁止スペースの文字値を取得します。次に、SUBSTITUTE()関数を使用して、改行禁止スペースを通常のスペースに置き換えます。そして、TRIM()関数を使用して、元のテキスト文字列の両端からすべてのスペースを削除します。
上記の例では、次の数式を使用して、元の文字列から非印刷文字と改行禁止スペースを削除できます。
=TRIM(SUBSTITUTE(A3,CHAR(160)," "))
この記事がお役に立てば幸いです。
コメントする