いきなり答える備忘録

Google Workspace・Microsoft 365・LibreOfficeなどに関するメモ

(Excel)右からn文字を削除する方法

 Excelで、文字列の右(末尾)から指定した文字数を削除した結果を得る方法についてです。
 併せて右からn文字目だけ削除する方法も紹介します。

右からn文字を削除する方法

 次の画像では、B3セルの文字列のうち右から3文字(くけこ)を削除した結果を、C3セルの数式により取得しています。

 C3セル

=LEFT(B3,LEN(B3)-3)

 文字列の左側の部分を抽出するLEFT関数を使っています。
 LEFT関数の構文は次の通りで、第2引数(抽出する文字数)として「文字列の文字数-削除する文字数(n)」つまり「LEN(B3)-3」を指定することで結果的に右側の3文字を削除しています。

LEFT(文字列 [,文字数])

 


 次の画像ではnとしていくつかの値を指定しています。
 nが文字列の文字数と等しいと空文字列が返り、文字数を超えるとエラーが返ります。

 D3セル

=LEFT(B3,LEN(B3)-C3)

右からn文字目だけ削除する方法

 右からn文字目の1文字だけを削除する方法です。
 次の画像ではB3セルの文字列の3文字目(く)だけを削除した結果を得ています。

 C3セル

=REPLACE(B3,LEN(B3)-3+1,1,"")

 文字列の一部を置き換えるREPLACE関数を使っています。
 構文は次の通りで、第2引数を「文字列の文字数-n+1」、第3引数を削除する文字数「1」、置換先を「""」とすることで結果的に右からn文字目だけを削除することができます。「+1」を忘れると誤りですので注意が必要です。

REPLACE(文字列, 開始位置, 文字数, 置換先)

 


 次の画像ではnとしていくつかの値を指定しています。
 nが0だと元の文字列がそのまま返り、文字数を超えるとエラーが返ります。

 D3セル

=REPLACE(B3,LEN(B3)-C3+1,1,"")

 


 本編より長くなってしまいますが2つ目の方法も紹介しておきます。
 次の画像では別の関数を使ってB3セルの文字列の3文字目(く)だけを削除した結果を得ています。

 C3セル

=LEFT(B3,LEN(B3)-3)&RIGHT(B3,3-1)

 文字列の左側を抽出するLEFT関数に加えて、文字列の右側を抽出するRIGHT関数を使い、2つの抽出結果を「&」でつないでいます。
 削除しようとする文字の手前(左側)と後(右側)をそれぞれ抽出してつなげる、という発想は単純ですが式に表そうとすると意外に難しいです。



 nとしていくつかの値を指定する例です。
 nが0だったり文字数を超えるとエラーが返ります。

 D3セル

=LEFT(B3,LEN(B3)-C3)&RIGHT(B3,C3-1)