(Excel)全角数字だけを半角にする

 Excelで、文字列中の全角数字だけを半角数字に変換する方法についてです。
 対象となる文字が10種だけなのでメニュー操作やSUBSTITUTE関数でもできそうですが、ここでは関数を使った別の例を試してみます。

  • 各種関数を応用して文字列中の全角数字だけを半角数字に変換することができます。

手順

 次の画像ではB列に変換前の文字列が入力されています。
 これに対しC3セルに式を入力し、下方にコピーすることで文字列中の全角数字だけを半角数字に変換しています。
 なおB6セルのエラーインジケータ(緑の三角)は「数字が文字列として保存されています」によるものです。

f:id:accs2014:20220323031753p:plain:w700

 C3セルの式は次のようなものです。

 C3セル

=LET(x,MID(B3,SEQUENCE(LEN(B3)),1),CONCAT(IFERROR(VALUE(x),x)))

 「MID(B3,SEQUENCE(LEN(B3)),1)」によりB3セルの文字列を1文字ずつ分割し、LET関数によりこれをxと名付けています。
 そしてx(の各文字)をVALUE関数で評価し(ここで全角数字だけが半角数字になります)、エラーになる文字(全角数字でも半角数字でもない文字)については元の文字に戻すようにして最後にCONCAT関数で連結しています。
 注意点としては、数値として保存されているセルの内容も文字列に変換されます(B7セル→C7セルの例)。
 日付は対応するシリアル値を文字列に変換したものとなります。


 なお、次の記事では全角英字も含めて半角にする例を示しています。かなり複雑になりますが参考まで。

www.officeisyours.com