販促レポート
2017/07/14 Excel小技
<エクセル> 英数字を半角・半角カナを全角、同時に変換する方法
商品リストなど、全角と半角の混在データは困りもの。「25mg」などの数字やアルファベットは半角に、半角カタカナは全角に...と一括変換したい時、関数だけでは中々対処できません。本日はそんな問題を解決していきます。
全角と半角が混在するデータは困りもの

統一性のない全角と半角が混在するデータはとにかく困りものです。
特に、数字が半角だったり全角だったり...と一貫性がない場合は始末に負えません。更に、単位を表す記号が「mg(全角)」だったり「mg(半角)」だったりと統一されていない場合は、本気で泣きたくなります。もちろん、ホーム→編集の「置換」機能で、ある程度は対処できるとはいいえ、それにも限度があります。
半角全角が混在するデータは、データ→フィルターの「抽出」機能が使えないだけでなく、半角カタカナのままでは文字化けする可能性もあるので、できればビジネスでは避けたいところです。
とはいえ、、、手にした住所録や商品リストが、お客様や取引先からの支給だったり、上司からの指示だったりする場合、文句を言ったり修正をお願いするわけにもいきません。時間があれば、一つ一つ根気よく手作業で補正するのもよいでしょう。でも、できればそんな面倒な作業はしたくないし、何よりも誤植になってしまうので、やはり避ける事が望ましいです。
今回は、簡単な関数とマクロを使い、英数字やカタカナなど「全角と半角」が入り乱れたデータを一括で修正する方法をご紹介。煩わしい手作業でのデータ補正から、自由になっちゃいましょう。
英数字を半角に半角カナを全角に、混在データを一括で変換する方法

単位が不揃いで、全角や半角が混在するデータは見ずらいだけでなく、検索や抽出もできないため、とても厄介です。

まずは、ASC関数を使い、全ての「英数字」と「カタカナ」を一時的に「半角」に置き換えます。下記をコピーし対象セルにペーストしてください。

セル右下の [+] を摘まみ連続コピー。漢字と平仮名を除く全てが半角になりました。一先ずは、一時的な作業です。

続いて対象のワークシートで、[alt+F11] を押します。VBAProject(ファイル名)で右クリック、[挿入(N)] → [標準モジュール(M)] を押してください。

下記のコードを図のようにコピーペースト。

適当なセルに触れ(どこでも)、ワークシートに戻ります。続いて、変換したいセルに下記をコピーペースト。

同様にセル右下の [+] を摘まみ連続コピーで完成。英数字は半角に!漢字やカタカナは全角に!キレイに整いました。後は、「値」として移し替えるなりしてください。
いかがでしたでしょうか。
商品リストや住所録など、全角と半角が混在するデータは本当に困りもの。今回ご紹介する方法なら、例え1000行を超える膨大なデータでも、「英数字は半角に変換、半角カタカナは全角に変換」が同時に解決できます。データの補正作業にぜひご活用ください。なお今回の執筆は、下記を参照させていただきました。
参照:教えて!goo
<ライタープロフィール>

統一性のない全角と半角が混在するデータはとにかく困りものです。
特に、数字が半角だったり全角だったり...と一貫性がない場合は始末に負えません。更に、単位を表す記号が「mg(全角)」だったり「mg(半角)」だったりと統一されていない場合は、本気で泣きたくなります。もちろん、ホーム→編集の「置換」機能で、ある程度は対処できるとはいいえ、それにも限度があります。
半角全角が混在するデータは、データ→フィルターの「抽出」機能が使えないだけでなく、半角カタカナのままでは文字化けする可能性もあるので、できればビジネスでは避けたいところです。
とはいえ、、、手にした住所録や商品リストが、お客様や取引先からの支給だったり、上司からの指示だったりする場合、文句を言ったり修正をお願いするわけにもいきません。時間があれば、一つ一つ根気よく手作業で補正するのもよいでしょう。でも、できればそんな面倒な作業はしたくないし、何よりも誤植になってしまうので、やはり避ける事が望ましいです。
今回は、簡単な関数とマクロを使い、英数字やカタカナなど「全角と半角」が入り乱れたデータを一括で修正する方法をご紹介。煩わしい手作業でのデータ補正から、自由になっちゃいましょう。
英数字を半角に半角カナを全角に、混在データを一括で変換する方法

単位が不揃いで、全角や半角が混在するデータは見ずらいだけでなく、検索や抽出もできないため、とても厄介です。

まずは、ASC関数を使い、全ての「英数字」と「カタカナ」を一時的に「半角」に置き換えます。下記をコピーし対象セルにペーストしてください。
=ASC(A2)

セル右下の [+] を摘まみ連続コピー。漢字と平仮名を除く全てが半角になりました。一先ずは、一時的な作業です。

続いて対象のワークシートで、[alt+F11] を押します。VBAProject(ファイル名)で右クリック、[挿入(N)] → [標準モジュール(M)] を押してください。

下記のコードを図のようにコピーペースト。
Function myStrFmt(文字列 As String, Optional 数字 As Boolean = True, Optional 記号 As Boolean = False)
Dim ReplaceList As String
Dim TargetStr As String
Dim MAK As String, NUM As String, ALB As String
Dim i As Long
'半角化の対象とする文字を全角で定義
MAK = "!#$%&'()*+-./:;<=>?@[¥]^_{|}。、,,"
NUM = "01234567890"
ALB = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
'置換リスト作成
ReplaceList = NUM & ALB & StrConv(ALB, vbLowerCase)
If 数字 Then ReplaceList = ReplaceList & NUM
If 記号 Then ReplaceList = ReplaceList & MAK
'全角化
文字列 = StrConv(文字列, vbWide)
'置換
For i = 1 To Len(ReplaceList)
TargetStr = Mid(ReplaceList, i, 1)
文字列 = Replace(文字列, TargetStr, StrConv(TargetStr, vbNarrow))
Next i
myStrFmt = 文字列
End Function
'マクロで関数を使用するサンプル(セルを選択した状態で実行)
Sub サンプル()
On Error Resume Next
Dim rngCell As Range
Application.ScreenUpdating = False
For Each rngCell In Selection
If rngCell.Value <> "" Then
rngCell.Value = myStrFmt(rngCell.Value, True, False)
End If
Next rngCell
Application.ScreenUpdating = True
End Sub

適当なセルに触れ(どこでも)、ワークシートに戻ります。続いて、変換したいセルに下記をコピーペースト。
=myStrFmt(B2)

同様にセル右下の [+] を摘まみ連続コピーで完成。英数字は半角に!漢字やカタカナは全角に!キレイに整いました。後は、「値」として移し替えるなりしてください。
いかがでしたでしょうか。
商品リストや住所録など、全角と半角が混在するデータは本当に困りもの。今回ご紹介する方法なら、例え1000行を超える膨大なデータでも、「英数字は半角に変換、半角カタカナは全角に変換」が同時に解決できます。データの補正作業にぜひご活用ください。なお今回の執筆は、下記を参照させていただきました。
参照:教えて!goo
<ライタープロフィール>
担当ライター:h.nakano
ノベルティグッズの専門家、販促ノベルティ卸売りセンターを運営するサンソニックの社長です。数あるノベルティグッズお取り扱いサービスの中から、ご訪問いただきありがとうございます。マーケティングや集客を見据えた、ノベルティ用素材商品の開発を主に担当。名入れ制作事例ではエディタとして取材執筆するほか、素人ながらスチール撮影も何とかこなしております。
名入れ制作事例
公式フェイスブック
販促レポートは、特集記事や販売促進コラム、オフィスでの問題解決など、皆さんのビジネスに少しでも役立つ情報をお届け。編集長の弊社代表と様々な分野で活躍する若手ライター陣によって、2008年より地道に運営されております。
★このページを友達に伝えよう:
FOLLOW @pqnavi
LIKE @pqnavicom
このレポートに関連するノベルティ素材
<アウトレット売切廃盤> [PC周辺グッズ] USBデスクライト コンパクト ホワイト 定価: 卸値:90円 |
<アウトレット売切廃盤> クッションマウスパッド スクエア マットブラック 定価: 卸値:250円 |
定価: 卸値:350円 |
★関連エントリー:
- <エクセル> ファイルのサイズを劇的に軽くする便利ワザ
- <エクセル> フィルタ抽出しても連番を崩さない方法|UBTOTAL関数
- <エクセル> 納品日など、締め切り間近のセルを自動で色付けする方法|条件付き書式
- <エクセル> 条件一致データを別ファイルから抽出する方法|VLOOKUP関数
- <エクセル> 大量の連続データを一瞬で作成する便利ワザ|連続データの作成
- <エクセル> 日時データとの結合で起こる数字の羅列?を防ぐ方法|TEXT関数
- <エクセル> 最大値・最小値を一瞬で抜き出す便利ワザ|MAX関数・MIN関数
カテゴリ:<Excel小技> の一覧
[お探しの検索ワードはコチラですか?]
検索メニュー