複数の人が1つのファイルにデータを入力する場合、「英数カナや記号は半角で!」とあらかじめルール決めをしていても気づけば全角半角が混在して統一性に欠けるデータになってしまうのは結構よくある話です。
しかし、すでに多くのデータが入っている状態から1つ1つ直していくのは手間も時間もかかります。本日はこのような事態に役立つ全角半角を統一する関数のお話です。
※解説画像はMicrosoft365のExcelを使用しています
英数カナを全角⇒半角にする「ASC関数」
まずセル内の文字に含まれる全角の英数カナをすべて半角に変更する「ASC(アスキー)関数」から見ていきましょう。
数式の作りは至って単純です。
=ASC(文字列)
引数の(文字列)の部分には、半角に修正したい文字列が入力されたセル番地を指定します。
こちらにセルA1~A3に全角文字で入力されたサンプルデータがあります。これをすべて半角にしてみましょう。結果を出すセルはB1~B3を使用します。
セルB1にカーソルを合わせ、=ASまで入力すると数式の候補上位にASCが表示されますので、選択されている事を確認しTabキーを押します。
対象の文字列が入ったセルA1をクリックし、セル番地の「A1」を入力します。(A1と直接入力しても大丈夫です)
閉じ括弧「)」を入力してEnterを押します。
文字列が半角に変更されました。セルB1にカーソルを戻し、フィルハンドルをB3までドラッグして数式をコピーしましょう。
すべて半角文字列に変更できました。ちなみにA3に「-」(ハイフン)が入っていますが、記号についても全角で入っていれば半角に変更されます。
英数カナを半角⇒全角にする「JIS関数」
さきほどとは逆、半角英数カナを全角にしたい時は「JIS(ジス)関数」を使います。
=JIS(文字列)
使い方はASCと同様、括弧()内の引数には変更したい文字列の含まれるセル番地を指定します。下図のA1~A3に半角英数カナで文字列が入力されているサンプルデータを使って、全角に変更してみましょう。結果はまたB1~B3に出す事とします。
セルB1に「=J」まで入れるともうJISが変換候補として選択されていますね。「J」で始まる関数は「JIS」しかありません※ので、このままTabを押して入力しましょう。
※2020年12月現在
セルA1をクリックしてセル番地を入力したら閉じ括弧を入力します。
Enterを押すと全角に変更されました。B1にカーソルを戻し、フィルハンドルをB3までドラッグしましょう。
記号も含めすべて全角に変更されました。
ASCもJISも文字列操作というカテゴリの関数です。[数式]タブの関数ライブラリから数式を入力する場合は「文字列操作」をクリックして一覧から選択しましょう。
変更し終わったら必ず「値を確定」しよう
ASCもしくはJISで全角⇔半角を変更した段階では、数式は変更前のデータが入っているセルを参照しているだけの状態ですので、もう元の列はいらないやとそのままデータをDeleteしたり列削除してしまうと・・
数式が参照していた文字列が消えてしまうのでエラーになってしまいます。
ASCやJISで変更した後は、最後に必ず「数式の結果の値」を「元データに上書き」する作業を行いましょう。
先ほどの「JIS関数」で全角に修正したサンプルデータを使ってやってみます。数式を入力したセルB1~B3をドラッグで範囲選択し右クリック⇒「コピー」をクリックします。
貼り付け先の先頭のセル(A1)を選択して右クリック⇒「貼り付けのオプション」から「値」(クリップボードに数字で「123」と書かれたアイコン)をクリックします。
コピーしてそのまま「貼り付け」してしまうと数式ごと貼り付けされてしまうので、必ず「値」のみ貼り付けするようにしましょう!
「値」を貼り付けすると、結果の値だけが貼り付けされます。これでB列の数式はもう不要になりますので、列削除しましょう。
参考:氏名・住所データの修正例
住所の番地や方書の英数カナ記号を半角で統一する
こちらのシートのA列に住所が入力されていますが、番地の数字や記号が全角半角混在しています。B列にASC関数を使って全角部分を半角にした結果を表示し、最終的にA列の住所を数字・記号を半角で統一したデータに修正してみます。(実際の住所リストなどは隣の列に別のデータが入力されていると思いますので、その場合は数式を入れる列を1列挿入してください)
セルB2に=ASC(A2)と入力しEnterを押します。
A列の住所には漢字やひらがなも使われており、最初から半角で入っている数字や記号もありますが、ASCでは対象外の文字(漢字、ひらがな)や修正不要の英数カナ(既に半角で正しく入っている文字列)などは無視しますので気にする必要はありません。(JISの場合も同様です)
数式を入れ終わったら、データの終点までフィルハンドルをドラッグして数式をコピーし、そのまま右クリックして「コピー」をクリックします。
A列のデータの先頭(A2)を選択し右クリック⇒「貼り付けのオプション」から「値」をクリックします。
A列のデータが半角統一された値で上書きされたら、B列は列削除しましょう。
こちらはカナと数字が混在する方書を想定したデータですが、英数カナ記号のうちカナだけを全角にしたいといった使い方はできませんので、ASCで変更すると下図のように漢字以外はすべて半角に変更されます。
氏と名の間のスペースを全角で統一する
氏名をひとつのセルに入力する場合、一般的には氏と名の間にスペースを1つ入れる事が多いと思いますが、このスペースも全角半角が混在しやすいポイントです。
ではこちらの氏名の間のスペースを全角に統一してみましょう。(スペースも記号なので、ASCやJISの変更対象になります)
B2に「=JIS(A2)」と入力します。元々A2は全角スペースが正しく入力されていたのでEnterを押しても変化はないのですが、気にせずオートフィルで一番下の行まで数式をコピーしましょう。
スペースが全角で統一されました。あとは、セルB2~B6までをコピーして、A2~A6に「値」のみ貼り付けを行いましょう。
尚、スペースの全角半角を統一した時、他のセルと比べると間の空き方が不自然な箇所が発生する場合があります。下図は先のデータを少しいじってみたものですが、セルB5をよく見ると、B4やB6よりも氏と名の間が広いですよね。元データのA5は半角っぽくも見えるのですが・・・
実はこれ、A5に入っているスペースが「半角2つ」で入力されていたために、JISで変更した結果が全角2つ分の不自然な空間になっているのです。このような場合は元データから余計なスペースを削除しましょう。
※文字と文字の間に入っている複数のスペースを1つに修正する関数もあります。
詳しくは不要なスペースを削除する「TRIM関数」の回を参考にしてください。
近年のデザイン性の高いフォントでは、文字種によっては目視で全半角の区別がつきづらいものがありますが、JISやASCを使うとこういった見えにくいミスを発見する事もできます。