大体でIT

-ちょっと使えるネタを紹介-

大体でIT

Excelで、数字のみを全角から半角に変換する方法について、ご紹介します。数字のみを半角に変換する方法は、3つあります。「ASCとPHONETIC関数を使う」、「SUBSTITUTE関数を使う」、「Excel VBAを使う」という方法です。簡単なのは、VBAを使う方法です。どうしてもVBA以外がいいという場合は、「SUBSTITUTE関数」が確実です。

はじめに

この記事では、数字のみを全角から半角に変換する方法について、ご紹介します。

数字のみを全角から半角に変換する方法は、3つ、あります。

  • ASCとPHONETIC関数を使う
  • SUBSTITUTE関数を使う
  • VBAを使う

という感じです。

簡単なのは、ASCとPHONETIC関数を使う方法です。

ただ、「ひらがな」と「アルファベット」も変換されてしまいます。

「SUBSTITUTEを使う方法」では、確実に、数字のみを半角に変換できます。

ただ、ちょっと面倒です。

VBAを使うと、複数の文字列でも一括で、数字のみを半角に変換してくれます。

VBAでもいいのであれば、VBAが簡単です。

どうしてもVBAは、使いたくないのであれば、SUBSTITUTEを使って置換する方法を使うといいです。

では、数字のみを全角から半角に変換する方法について、解説していきます。

この記事で紹介すること

  • 数字のみを全角から半角に変換する方法

目次から見たい項目へ移動すると便利ですよ。

目次

Excelで数字のみを全角から半角に変換する

Excelで、数字のみを全角から半角に変換してみます。

数字のみを全角から半角に変換するExcel関数は、ないので、Excel関数を組み合わせます。

「アイウエオ-0123456789」の文字列で、数字のみを全角から半角に、変換してみます。

ASCで全て半角に変換

「ASC関数」で全ての文字列を「半角」に変換します。

=ASC(A2)

セルに入力します。

「ASC関数」で「半角」に変換

ASC関数で全ての文字列を「半角」に変換する

結果は、「アイウエオ-0123456789」となりました。

カタカナも半角になっているので、カタカナを全角にしていきます。

値のみを貼り付け

「値の貼り付け」で、値のみに変換します。

「値の貼り付け」で値のみに変換

値の貼り付けで値のみに変換する

数式から値に変換されました。

次に、PHONETIC関数で、カタカナを全角に変換していきます。

PHONETICでカタカナを全角に変換

「PHONETIC関数」でカタカナを全角に、変換します。

=PHONETIC(A6)

セルに入力します。

PHONETIC関数で「カタカナ」を「全角」に変換

PHONETIC関数でカタカナを全角に変換した結果

結果は、「アイウエオ-0123456789」となりました。

数字のみ半角に変換できました。

ただし、この方法だと、「ひらがな」や「アルファベット」では、うまくいきません。

ちょっとやってみます。

ExcelでASCとPHONETICを使う問題点

ASC関数とPHONETIC関数を使う方法で、「ひらがな」や「アルファベット」を変換してみます。

「ひらがな」が「カタカナ」になってしまう

「ひらがな」が入った文字列で、数字のみを半角に変換してみます。

「ひらがな」が「カタカナ」になってしまう

ひらがなが入った文字列で数字のみを半角に変換

結果は、「アイ-0123456789」となりました。

「ひらがな」が「カタカナ」になってしまいました。

数字のみを半角にしたいのに、うまくいっていません。

「アルファベット」も「半角」になってしまう

「アルファベット」が入った文字列で、数字のみを半角に変換してみます。

「アルファベット」が「半角」になってしまう

アルファベットが入った文字列で数字のみを半角に変換

結果は、「AB-0123456789」となりました。

「アルファベット」も「半角」になってしまいました。

数字のみを半角にしたいのに、この場合もうまくいっていません。

とりあえず、「カタカナ」と「数字」の文字列であれば、ASCとPHONETIC関数で、数字のみを半角にできます。

ExcelでSUBSTITUTEで数値のみを全角から半角に変換

「SUBSTITUTE関数」を使うと、無理やりですけど、数字のみを半角に変換することもできます。

SUBSTITUTE関数を使う

「SUBSTITUTE関数」で数値のみを半角に変換するには、次のように数式を入力します。

=SUBSTITUTE(A2,"0","0")
=SUBSTITUTE(A4,"1","1")
=SUBSTITUTE(A5,"2","2")
=SUBSTITUTE(A6,"3","3")
=SUBSTITUTE(A7,"4","4")
=SUBSTITUTE(A8,"5","5")
=SUBSTITUTE(A9,"6","6")
=SUBSTITUTE(A10,"7","7")
=SUBSTITUTE(A11,"8","8")
=SUBSTITUTE(A12,"9","9")

という感じで、「0~9」の数字を「0~9」に変換するという感じです。

セルに入力してみます。

SUBSTITUTEで数字のみを半角に変換

SUBSTITUTE関数で全角の数字を半角に変換した結果

結果は、「あい-アイ-AB-0123456789」となりました。

数字のみを半角に変換できていきます。

セルから変換する文字を取得

SUBSTISTUTE関数で置換する文字列を、セルから取得すると、入力がちょっと簡単になります。

次のように数式を入力します。

=SUBSTITUTE(A2,B3,C3)

これを、下にコピーしていきます。

SUBSTITUTEで数字のみを半角に変換

SUBSTITUTE関数で全角の数値を半角に置換する

結果は、先ほどと同じで、「あい-アイ-AB-0123456789」となりました。

複数の文字列で、数字のみを半角する変換したい場合は、列方向に数式を入力します。

列方向に数式を入力

SUBSTITUTE関数を、列方向に入力してみます。

入力する数式は、こんな感じです。

=SUBSTITUTE(A5,B$3,B$4)

この数式を行と列に、コピーします。

数式をコピーする

SUBSTITUTE関数を行と列にコピーする

数字のみを半角に、変換した結果です。

数字のみを「半角」に変換

SUBSTITUTE関数で複数の文字列で数字のみを半角に変換した結果

結果は、複数の文字列で、数字のみを半角に変換できました。

数字のみ半角に変換したら、あとは、「値の貼付け」を使って、数式から値に変換するといいでしょう。

なかなか、大変です。

VBAを使うと、意外と簡単に、数字のみを変換できます。

VBAで数字のみを全角から半角に変換する

VBAで、数字のみを全角から半角に変換してみます。

数値のみを全角から半角に変換

数値のみを全角から半角に変換するVBAコードは、こんな感じです。

Sub TEST1()
    
    '値のみをオブジェクトに格納
    Dim Rg
    Set Rg = ActiveSheet.Cells.SpecialCells(xlCellTypeConstants)
    
    '0~9をループする
    For i = 0 To 9
        a = StrConv(i, vbWide) '全角の数字を作成
        b = StrConv(i, vbNarrow) '半角の数字を作成
        Rg.Replace a, b '数字を、全角から半角に置換する
    Next
    
End Sub

上のVBAコードを、標準モジュールに貼り付けるだけです。

標準モジュールは、

  • 「Alt + F11」で、VBE画面を開く
  • 「挿入」タブ→「標準モジュール」

という流れで、作成できます。

VBAを実行すると、戻すことができないので、必ずバックアップを取っておきましょう。

1つの文字列で数字のみを「半角」に変換

次の文字列を用意しました。

実行前の文字列

では、実行してみます。

標準モジュールのところで「F5」を押します。

数字のみを半角に変換

結果は、「あい-アイ-AB-0123456789」となりました。

数字のみを、半角に変換できています。

複数の文字列でも、数字のみを半角に変換することができます。

複数の文字列で数字のみを「半角」に変換

複数の文字列を用意しました。

複数の文字列を用意

では、実行してみます。

複数の文字列で数字のみを半角に変換した結果

結果は、複数の文字列で、数字のみを半角に変換できました。

数式の数値を半角に変換

数式に入力された数値のみを、全角から半角に変換することもできます。

VBAコードは、こんな感じです。

Sub TEST2()
    
    '数式のみをオブジェクトに格納
    Dim Rg
    Set Rg = ActiveSheet.Cells.SpecialCells(xlCellTypeFormulas)
     
     '0~9をループする
    For i = 0 To 9
        a = StrConv(i, vbWide) '全角の数字を作成
        b = StrConv(i, vbNarrow) '半角の数字を作成
        Rg.Replace a, b '数字を、全角から半角に置換する
    Next
    
End Sub

数式の中の数字のみを、「半角」に変換してみます。

数式内の数字のみを「半角」に変換

数式の中に、全角の文字列を入力しました。

実行前の文字列

では、実行してみます。

数字のみを半角に変換

結果は、「="あい-アイ-AB-0123456789"」となりました。

数式の中でも、数字のみを、半角に変換できています。

複数の数式でも、数字のみを半角に変換することができます。

複数の数式内の数字のみを「半角」に変換

複数の数式を用意しました。

複数の文字列を用意

数式の中に全角の数字が入力されています。

では、実行してみます。

複数の数式で数字のみを半角に変換した結果

結果は、複数の数式で、数字のみを半角に変換できました。

おわりに

この記事では、数字のみを全角から半角に変換する方法について、ご紹介しました。

数字のみを全角から半角に変換する方法は、3つ、あります。

  • ASCとPHONETIC関数を使う
  • SUBSTITUTE関数を使う
  • VBAを使う

という感じです。

簡単なのは、ASCとPHONETIC関数を使う方法です。

ただ、「ひらがな」と「アルファベット」も変換されてしまいます。

SUBSTITUTEを使うと、確実に、数字のみを半角に変換できます。

ただ、ちょっと面倒です。

VBAを使うと、複数の文字列でも一括で、数字のみを半角に変換してくれます。

VBAでもいいのであれば、VBAが簡単です。

どうしてもVBAは、使いたくないのであれば、SUBSTITUTEを使って置換する方法がいいです。

参考になればと思います。最後までご覧くださいまして、ありがとうございました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

アーカイブから探す