いきなり答える備忘録

Google Workspace(旧G Suite)・Microsoft 365・LibreOfficeなどに関するメモ

(Gスプレッドシート)文字列の先頭(左)からn文字を削除する

 Googleスプレッドシートで、文字列のうち先頭から指定した文字数の文字を削除する方法についてです。
 いろいろな方法が考えられますが、対象文字列が短い場合に結果に違いが出ることが注意点です。

手順

REPLACE関数を用いる方法(おすすめ)

 文字列置換の関数であるREPLACE関数を使う方法です。
 対象となる文字列がn(削ろうとする文字の数)より短い場合には空文字列が出力されます

 画像ではC3セルに次のような式を入力し、下方にコピーすることで対象文字列の先頭2文字を削除しています。つまりn=2のケースです(以下同様)。

 C3セル

=REPLACE(B3,1,2,"")

 第4引数(置換先)を空文字列とすることで削除に利用しています。第2引数で置き換えの開始位置を、第3引数で置換文字数を指定しています(一般のnに対しては「=REPLACE(B3,1,n,"")」となります)。
 対象となる文字列が短い場合に空文字列が返されます。最も自然で扱いやすい方法(結果)と思われます。

REGEXREPLACE関数を用いる方法

 GoogleスプレッドシートオリジナルのREGEXREPLACE関数を用いる方法です。
 対象となる文字列がn(削ろうとする文字の数)より短い場合には元の文字列のまま出力され、空白セルは空文字列になります

 C3セル

=REGEXREPLACE(B3,"^..","")

 正規表現で先頭の2文字を意味する「^..」を第2引数し、これを空文字列に置き換えています。
 結果はREPLACE関数に似ていますが、文字列が短いとそのまま返ります(「あ」のケース)。これはこれで1つの結果ですが、不自然に映るかもしれません。
 なお「=REGEXREPLACE(B3,"^.{1,2}","")」とすれば2文字未満の場合に空文字列を出力できます(一般には「=REGEXREPLACE(B3,"^.{1,n}","")」となります)。しかしREPLACE関数を使う方が簡単です。

RIGHT/LEN関数を用いる方法

 LEN関数で文字列の長さを計算し、RIGHT関数で削除後の文字列を取得する方法です。
 対象となる文字列がn(削ろうとする文字の数)より短い場合にはエラーになります

 C3セル

=RIGHT(B3,LEN(B3)-2)

 一般には「=RIGHT(B3,LEN(B3)-n)」となります。ごく基本的な関数の組み合わせで実現していますが、対象文字列が短い場合にエラーになるのが注意点です。
 「=IFERROR(RIGHT(B3,LEN(B3)-2),"")」などとすれば2文字未満の場合に空文字を出力できますが、これもREPLACE関数と比べるとかえって面倒です。

備考

 REGEXREPLACE関数を使う方法では、数値を対象とした場合にエラーが返ります。
 他の2つの方法ではエラーにはなりませんが戻り値は文字列となります。