販促レポート

2017/07/14 Excel小技

<エクセル> 英数字を半角・半角カナを全角、同時に変換する方法

商品リストなど、全角と半角の混在データは困りもの。「25mg」などの数字やアルファベットは半角に、半角カタカナは全角に...と一括変換したい時、関数だけでは中々対処できません。本日はそんな問題を解決していきます。

全角と半角が混在するデータは困りもの
<エクセル> 英数字を半角に半角カタカナを全角に、同時に変換する方法

統一性のない全角と半角が混在するデータはとにかく困りものです。
特に、数字が半角だったり全角だったり...と一貫性がない場合は始末に負えません。更に、単位を表す記号が「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デスクライト コンパクト

名入れ対応品スピード印刷

<アウトレット売切廃盤> [PC周辺グッズ] USBデスクライト コンパクト ホワイト

定価:180円

卸値:90円


ノベルティ: <アウトレット売切廃盤> クッションマウスパッド スクエア

名入れ対応品推奨品スピード印刷

<アウトレット売切廃盤> クッションマウスパッド スクエア マットブラック

定価:500円

卸値:250円


ノベルティ:<アウトレット売切廃盤> USBハブ スティック

名入れ対応品スピード印刷

<アウトレット売切廃盤> USBハブ スティック ブラック

定価:700円

卸値:350円


<< 前のレポート

次のレポート >>


販促レポート一覧へ
販促レポートバックナンバー


★関連エントリー:

カテゴリ:<Excel小技> の一覧

 

 

スピード印刷

 

[お探しの検索ワードはコチラですか?]

ケータイマグトイレットペーパーシチズン置時計クリスタルカバーノートケース入り筆記具記念掛時計