文字列内の全角英数字を半角にする方法(Gスプレッドシート)

中級編

Excelにない関数の一覧

ご訪問ありがとうございます。

Googleシートマスターのひろしです。

前回

セル内の文字列から数字だけを抽出する方法(REGEXEXTRACT) 正規表現(Gスプレッドシート)
セル内の文字列から数字のみを抽出する方法がわかります。

今回は、とっても価値の高い方法をお伝えします。


これを知ることであなたは、

    • 正規表現で全角英数字だけ抜き出す方法がわかります。
    • 全角英数字を半角にすることができるようになります。

なので、サクッとマスターして

と答えてあげてください。

動画はこちら

シートはこちら

準備中
*クリックすることでシートが開きます。(コピーしてお使いください)

ポイント

半角にする関数はASC関数です。

ASC(テキスト)

 

しかしながらASC関数を使用するとすべて半角になってしまうので
正規表現を使用して全角英数字以外を対象にするようにします。

REGEXEXTRACT(テキスト, 正規表現)

 

正規表現に[^A-Z a-z 0-9]を指定することで全角英数字以外となります。

さらに全角英数字以外にASC関数を指定するようにIFNA関数を使用します。

IFNA(, [NAエラーの場合の値])

 

 

例)A1セルの文字を全角英数字の場合半角に変換する

=IFNA(REGEXEXTRACT(A1,"[^A-Z a-z 0-9]"),ASC(A1))

 

後は文字列を分解します。

SEQUENCE(行数, [列数], [開始値], [増分量])

SEQUENCE関数の行数に文字列の長さ(LEN関数)を指定し
MID関数の引数にすることで1文字づつ取り出します。

MID(文字列, 開始位置, セグメントの長さ)

例)A1セルの文字列1文字づつ縦に並べる

Arrayformula(MID(A1, SEQUENCE(LEN(A1)),1))

これで準備ができました。

後は変換して、出来上がった結果をCONCATNATE関数で
縦に並んだ文字列を結合してできあがりです。

CONCATENATE(文字列1, [文字列2, …])

 

例)A1セル内の全角英数字を半角に変更する
=CONCATENATE( ArrayFormula( IFNA( REGEXEXTRACT(MID(A1, SEQUENCE(len(A1)),1), "[^A-Z a-z 0-9]"),ASC(MID(A1, SEQUENCE(len(A1)),1)))))

 

 

こんな風に変換されます。

アイABC5%abc01オ2
アイABC5%abc01オ2

 

 

 

半角文字を全角文字に変換する↓

 

最後までご覧いただきありがとうございます。

つぎはこちら

正規表現によりカッコ内の文字列を抽出する方法(REGEXREPLACE) (Gスプレッドシート)
  • カッコ内の文字列を抽出することができます。
  • 正規表現を使った置換方法がかなりわかります。
  • Excelにない関数の一覧

    コメント

    タイトルとURLをコピーしました