excel

エクセルで末尾の文字を削除する方法(関数・LEFT・RIGHT・SUBSTITUTE・最後の1文字)

当サイトでは記事内に広告を含みます

エクセルでセル内の末尾にある不要な文字を削除したいとお考えではありませんか?

大量のデータを扱っていると、データのインポート時や入力ミスなどによって、意図しない文字が末尾に入り込んでしまうケースは珍しくありません。

一つずつ手作業で削除するのは非効率的で、時間も手間もかかってしまいます。

しかし、エクセルには末尾の文字を効率的に削除するための様々な関数が用意されています。

この記事では、特定の文字数や文字列を削除する方法から、スペースや記号といった特殊な文字の削除、さらには大量のデータに一括で適用するテクニックまで、具体的な方法を詳しく解説していきます。

これらのテクニックを習得すれば、データのクリーニング作業が格段にスムーズになり、より正確なデータ分析やレポート作成に役立つでしょう。

あなたのエクセル作業の効率化にぜひお役立てください。

エクセルで末尾の文字を削除する主要な方法は「LEFT関数」と「SUBSTITUTE関数」で効率化!

エクセルで末尾の文字を削除する場合、その目的に応じて「LEFT関数」または「SUBSTITUTE関数」を使い分けるのが最も効果的です。

特定の文字数を削除したい場合はLEFT関数を、特定の文字列を削除したい場合はSUBSTITUTE関数を使うことで、作業を効率化できます。

それではまず、これらの主要な削除方法について、具体的な使用例とともに確認していきましょう。

削除したい内容 主な推奨関数 簡単な説明 適用ケース
末尾から特定の文字数 LEFT関数 + LEN関数 文字列の左側から指定した文字数分を抽出することで、末尾の文字を削除します。 商品コードの末尾にある「-1」などの枝番を削除したい場合。
末尾の特定の文字列 SUBSTITUTE関数 + RIGHT関数(応用) 指定した文字列を別の文字列(空文字)に置き換えることで削除します。末尾に限定する場合はRIGHT関数との組み合わせが有効です。 ファイル名の末尾にある「.txt」などの拡張子を削除したい場合。
末尾のスペース TRIM関数 文字列の先頭と末尾にある余分なスペースを削除します。 データ入力時に誤って入力された不要なスペースを削除したい場合。
印刷できない文字 CLEAN関数 印刷できない文字(改行コードなど)を削除します。 他システムからインポートしたデータに含まれる制御文字を削除したい場合。

特定の文字数だけ末尾から削除する「LEFT関数」の基本

末尾から特定の文字数だけを削除したい場合、LEFT関数が非常に便利です。

LEFT関数は、指定した文字列の左端から指定した文字数分の文字を抽出する関数なので、全体の文字数から削除したい文字数を引くことで、末尾の文字を切り捨てることができます。

続いては、このLEFT関数の具体的な使い方と、他の関数との組み合わせ方を確認していきます。

LEFT関数とLEN関数の組み合わせ

LEFT関数を単独で使う場合、抽出する文字数を手動で指定する必要があります。

しかし、削除したい文字数が固定されている場合でも、セルの内容によって全体の文字数が異なる場合があります。

そこで役立つのが、文字列の長さを返すLEN関数です。

LEFT関数の基本的な構文は以下の通りです。

=LEFT(文字列, 文字数)

例えば、セルA1に「りんごジュース」と入力されていて、末尾の「ス」という1文字を削除したい場合、以下のようになります。

=LEFT(A1, LEN(A1)-1)

この式は、A1セルの全体の文字数(LEN(A1))から1を引いた数だけ、左端から文字を抽出するという意味です。

これにより、元の文字列が「りんごジュース」なら「りんごジュー」に、元の文字列が「バナナミルク」なら「バナナミル」に自動的に変換されます。

最後の複数文字を削除する方法

最後の1文字だけでなく、最後の複数文字を削除したい場合も、LEFT関数とLEN関数の組み合わせで対応可能です。

削除したい文字数を「N」とすると、LEN関数からその「N」を引けばよいだけです。

例えば、セルB1に「商品A-001」というデータがあり、末尾の「-001」という4文字を削除したい場合は、以下のようになります。

=LEFT(B1, LEN(B1)-4)

この場合、B1セルの文字列の長さから4を引いた文字数分が抽出され、「商品A」という結果が得られます。

このように、削除したい文字数が決まっている場合は、LEN関数と組み合わせてLEFT関数を使用することで、非常に柔軟な末尾文字削除が可能になります。

注意点:対象セルが空欄の場合や文字数より削除数が多い場合

LEFT関数とLEN関数を組み合わせて使用する際には、いくつか注意すべき点があります。

対象セルが空欄の場合、LEN関数は0を返すため、例えば「LEN(A1)-1」は「-1」となり、LEFT関数でエラーが発生します。

また、削除したい文字数(N)が元の文字列の長さ(LEN(A1))以上の場合も、同様にエラーとなるか、意図しない結果になる可能性があります。

これを回避するためには、IF関数などを用いて条件分岐させると良いでしょう。

例えば、`=IF(LEN(A1)>1, LEFT(A1, LEN(A1)-1), “”)` のようにすることで、1文字以下の場合は空欄を返すといった処理が可能です。

特定の文字列を末尾から削除する「SUBSTITUTE関数」の活用法

末尾に特定の「文字列」がある場合に、その文字列だけを削除したいケースでは、SUBSTITUTE関数が非常に有効です。

SUBSTITUTE関数は、指定した文字列内で特定の文字や文字列を別の文字や文字列に置き換えることができます。

続いては、このSUBSTITUTE関数を使って末尾の特定の文字列を削除する方法を詳しく見ていきましょう。

SUBSTITUTE関数で特定の文字列を削除する

SUBSTITUTE関数は、文字列の中から特定の文字列を検索し、それを別の文字列に置き換える機能を持っています。

この「別の文字列」を空文字(””)にすることで、実質的に削除として機能します。

SUBSTITUTE関数の基本的な構文は以下の通りです。

=SUBSTITUTE(対象文字列, 検索文字列, 置換文字列, [置換対象])

例えば、セルC1に「ファイル名.txt」というデータがあり、末尾の「.txt」という文字列を削除したい場合を考えます。

=SUBSTITUTE(C1, ".txt", "")

この式を実行すると、「ファイル名」という結果が得られます。

SUBSTITUTE関数は、検索文字列が複数回出現する場合、すべてを置き換えるのが基本動作です。

しかし、「置換対象」というオプション引数を指定することで、何番目に現れる検索文字列を置き換えるかを制御できます。

末尾の文字列に限定して削除する応用テクニック

SUBSTITUTE関数は文字列全体を対象とするため、もし削除したい文字列が途中に含まれていると、そこも削除されてしまいます。

例えば「テスト.txtファイル.txt」という文字列で末尾の「.txt」だけを削除したい場合、`=SUBSTITUTE(A1, “.txt”, “”)` とすると「テストファイル」となってしまいます。

このような場合に、末尾に限定して文字列を削除するには、RIGHT関数と組み合わせる方法が有効です。

RIGHT関数で末尾の特定の文字数分を抽出し、それが目的の文字列と一致するかどうかを判定した上でSUBSTITUTE関数を実行します。

例えば、セルD1に「ファイル名A.txt」があり、末尾に「.txt」がある場合のみ削除したいとします。

=IF(RIGHT(D1,4)=".txt", SUBSTITUTE(D1, ".txt", ""), D1)

この式は、D1セルの右端から4文字が「.txt」であればSUBSTITUTE関数で削除し、そうでなければ元の文字列をそのまま返すという意味です。

ただし、この方法だと文字列全体から「.txt」を削除するため、やはり途中にある「.txt」も消えてしまいます。

より確実なのは、LEFT関数とLEN関数、FIND関数(またはSEARCH関数)を組み合わせる方法です。

例えば、末尾の特定の文字列が始まる位置を特定し、そこまでをLEFT関数で抽出する方法です。

=LEFT(D1, FIND(".txt", D1, LEN(D1)-LEN(".txt")+1)-1)

この式は複雑に見えますが、FIND関数の第3引数で検索開始位置を調整することで、実質的に末尾から検索し、その位置の1つ手前までをLEFT関数で抽出するというロジックです。

この方法は、末尾に特定の文字列が必ずある場合に有効です。

複数回出現する文字列を末尾だけ削除したい場合

もし、削除したい文字列がデータ中に複数回出現し、かつ末尾のものだけを削除したい場合は、SUBSTITUTE関数の「置換対象」引数を活用することができます。

しかし、どの「置換対象」が末尾に当たるかを動的に判断するのは難しい場合が多いでしょう。

例えば、「abcabcabc」という文字列で3番目の「abc」(末尾の「abc」)だけを削除したい場合は、

=SUBSTITUTE(E1, "abc", "", 3)

とすることで、「abcabc」という結果が得られます。

しかし、この「3」という数字は元の文字列によって変わるため、柔軟性に欠けます。

このようなケースでは、FIND関数やRIGHT関数などを組み合わせて、末尾の文字列が何番目に現れるかを特定し、その番号をSUBSTITUTE関数の引数に渡すといった高度なテクニックが必要になるでしょう。

あるいは、文字列操作で一度逆順にしてから最初の出現を削除し、再度逆順に戻すといった工夫も考えられますが、複雑さが増します。

末尾の記号やスペースを削除する応用テクニック

データ入力やインポート時に、末尾に意図しないスペースや改行コード、その他の非表示文字が入り込んでしまうことはよくあります。

これらの文字は見た目では判断しにくいため、データの集計や検索に影響を与える可能性があります。

続いては、このような特殊な末尾文字を削除するための関数やテクニックを確認していきます。

TRIM関数で末尾のスペースを完全に除去

文字列の先頭や末尾に存在する不要なスペースを削除するには、TRIM関数が非常に有効です。

TRIM関数は、文字列内の単語間のスペースを1つにまとめ、先頭と末尾にあるすべてのスペースを削除します。

例えば、セルF1に「商品名 」と入力されている場合、

=TRIM(F1)

と入力すると、「商品名」という結果が得られます。

これは目に見えないスペースであっても確実に削除してくれるため、データのクリーニング作業において非常に重宝するでしょう。

ただし、単語間のスペースは1つにまとめるだけで削除はしない点に注意が必要です。

CLEAN関数で非表示文字を削除する

データによっては、改行コードやタブ文字など、画面上では見えない「非表示文字」が末尾に紛れ込んでいることがあります。

これらの文字は見た目では気づきにくく、TRIM関数でも削除できない場合があります。

CLEAN関数は、印刷できない文字や、一部の非表示文字を削除するのに役立ちます。

例えば、セルG1に「データ

改行」のような改行コードを含む文字列がある場合、

=CLEAN(G1)

と入力すると、改行コードが削除され「データ改行」のような結果が得られます。

これにより、データ間の不要な改行や制御文字が原因で発生する問題を解消できます。

ただし、CLEAN関数もすべての非表示文字に対応しているわけではないため、場合によってはFIND関数で特定の文字コードを検索し、SUBSTITUTE関数で置換するといった応用が必要になることもあります。

複数の記号や特殊文字を削除する方法

もし末尾に様々な種類の記号や特殊文字が混在している場合、それらを一括で削除するのは少し手間がかかるかもしれません。

一つの方法としては、LEFT関数とLEN関数を使い、末尾から特定の文字数分だけを削除する方法です。

しかし、これは削除したい文字数が固定されている場合に限られます。

より柔軟に対応するには、SUBSTITUTE関数を複数回ネスト(入れ子に)して使用するか、または正規表現を利用できるVBAを使うことも検討できます。

SUBSTITUTE関数をネストする例としては、

=SUBSTITUTE(SUBSTITUTE(H1, "!", ""), "?", "")

のように、まず「!」を削除し、次にその結果から「?」を削除するといった形です。

削除したい記号の種類が多い場合は、この方法だと式が長くなり、管理が難しくなるため、別の列に関数を用意して段階的に削除していくのが効率的です。

複数行のデータに一括適用!VBAを使わない効率的な処理

これまでに紹介した関数は、基本的に単一のセルに対して適用する方法です。

しかし、エクセルでデータを扱う際、何百、何千というデータ行に対して同じ処理を適用したいケースがほとんどでしょう。

VBA(Visual Basic for Applications)を使わなくても、エクセルの標準機能だけで複数行のデータに効率的に関数を適用する方法があります。

続いては、その具体的なテクニックを確認していきます。

オートフィル機能で関数をコピーする

最も簡単でよく使われるのが、オートフィル機能です。

まず、最初のデータ行に関数を入力します。

例えば、A列のデータから末尾1文字を削除し、B列にその結果を表示したい場合、B1セルに `=LEFT(A1, LEN(A1)-1)` と入力します。

次に、B1セルを選択し、セルの右下隅にある小さな四角(フィルハンドル)にマウスポインタを合わせます。

マウスポインタが十字の形になったら、ダブルクリックするか、そのまま必要な範囲まで下方向へドラッグします。

これにより、関数が自動的にコピーされ、相対参照によって各行のA列のデータに対して処理が適用されます。

「値のみ貼り付け」で元のデータと分離する

オートフィルで関数を適用した後、結果のセルは元のセルを参照しているため、元のデータが変更されると結果も変わってしまいます。

また、元のデータを削除すると、結果のセルはエラーになってしまいます。

そのため、関数によって得られた結果を確定させたい場合は、「値のみ貼り付け」を行うのが一般的です。

関数を適用した列全体(例:B列)を選択し、コピーします。

次に、貼り付けたい場所(例えば、元のA列を上書きしたい場合や、別の列に確定した値を置きたい場合)を選択し、右クリックメニューから「値」または「値の貼り付け」オプションを選択して貼り付けます。

これにより、関数ではなく、計算結果の「値」だけがセルに貼り付けられ、元のデータから独立した形で確定されます。

元のデータを保持しつつ処理を進めるコツ

データの加工を行う際には、万が一の誤操作に備えて、常に元のデータを保持しておくことが重要です。

最も簡単な方法は、作業する前に元のシートをコピーしておくことです。

シートタブを右クリックし、「移動またはコピー」を選択し、「コピーを作成する」にチェックを入れてOKをクリックします。

これにより、元のデータが残った状態で加工を行うことができます。

また、関数で処理した結果を別の列に表示し、「値のみ貼り付け」で元の列に上書きする際も、一度別の列に結果を確定させてから、元の列にコピー&ペースト(値)すると、元の列のデータがなくなる前に一度確認する余裕が生まれます。

この一手間が、後々のトラブルを防ぐことにつながるでしょう。

削除した文字を別のセルに残したい場合の対処法

末尾の文字を削除する際、単に不要な部分を消すだけでなく、「削除した部分だけを別のセルに抽出して残しておきたい」というニーズも発生することがあります。

例えば、商品コードの枝番を削除しつつ、その枝番自体も分析のために別の列で管理したいといったケースです。

続いては、このような場合にどのように対応すれば良いかを確認していきます。

MID関数やRIGHT関数で削除した部分を抽出する

末尾から削除する文字数が固定されている場合、MID関数やRIGHT関数を使って、削除した部分を簡単に抽出できます。

RIGHT関数は文字列の右端から指定した文字数分を抽出し、MID関数は文字列の途中から指定した文字数分を抽出する関数です。

例えば、セルI1に「商品A-001」というデータがあり、末尾の「-001」という4文字を削除しつつ、その「-001」をJ1セルに抽出したいとします。

削除後のデータは「LEFT関数」で作成し、I2セルに「=LEFT(I1, LEN(I1)-4)」と入力します。

そして、削除した部分(末尾の4文字)を抽出するには、J1セルに「=RIGHT(I1, 4)」と入力します。

これにより、元のデータはそのままに、加工後のデータと削除された部分のデータをそれぞれ独立して保持できます。

データ分析やバージョン管理としての活用

このように削除した文字を別のセルに残す方法は、データ分析において非常に有効です。

例えば、商品コードから地域コードや製造ロット番号といった情報を分離し、それぞれの要素ごとに集計やフィルタリングを行うことが可能になります。

また、データが変更された際の「バージョン管理」のような考え方にも応用できます。

元の完全なデータを「V1」、末尾を削除したデータを「V2」、削除した部分の情報を「V2-差分」といった形で管理することで、後から元の状態を復元したり、変更履歴を確認したりする手間が省けるでしょう。

元のデータと削除後のデータを同時に管理するメリット

元のデータと削除後のデータを別の列に保持しておくことには、多くのメリットがあります。

まず、作業の柔軟性が高まります。

もし、削除後のデータに対してさらに別の加工が必要になった場合でも、元のデータからやり直す必要がありません。

また、データの正確性を保つ上でも重要です。

加工中に予期せぬエラーが発生した場合でも、元のデータがあればいつでもやり直しが可能です。

さらに、部署やチーム内でデータを共有する際にも役立ちます。

特定の分析には加工後のデータを使用し、別の目的では元の完全なデータを使用するなど、柔軟な運用が実現するでしょう。

データを多角的に活用するために、この同時管理の手法はぜひ取り入れていただきたいテクニックです。

まとめ:エクセルでの末尾文字削除は状況に応じた関数の選択が鍵

この記事では、エクセルで末尾の文字を削除するための様々な方法を解説してきました。

特定の文字数を削除したい場合はLEFT関数とLEN関数を組み合わせるのが基本であり、特定の文字列を削除したい場合はSUBSTITUTE関数を活用するのが効果的です。

また、目に見えないスペースや改行コードといった特殊な文字の削除にはTRIM関数やCLEAN関数が非常に役立つでしょう。

大量のデータにこれらの関数を一括で適用する際には、オートフィル機能や「値のみ貼り付け」を駆使することで、効率的に作業を進められます。

さらに、削除した文字を別のセルに残したいというニーズに対しては、RIGHT関数やMID関数を使って抽出することで、データ分析やバージョン管理といった応用も可能になります。

エクセルのデータ処理は、目的に応じて適切な関数を選択し、それらを組み合わせて使用することが成功の鍵です。

今回ご紹介したテクニックを参考に、あなたのエクセル作業がよりスムーズで効率的なものになることを願っています。