注文書係

受注データの電話番号がCSV取込で弾かれる — ハイフンの全角/半角・マイナス記号混同という盲点

公開:

得意先の電話番号を入れた受注データをCSVで取り込んだら、その列だけ「電話番号の形式が正しくありません」と弾かれた。画面で見ると「03-1234-5678」と、どこもおかしくないように見える——送り状の発行システムや基幹システムへの取込で、こうしたことが起きることがあります。

原因としてよくあるのは、数字ではなく区切りのハイフンです。見た目はほとんど同じでも、コンピューターの中では別の文字として扱われる「ハイフンに似た記号」がいくつもあり、取込先が半角のハイフンしか受け付けない場合、それ以外の記号が混ざった行はエラーになります。この記事では、どんな記号が紛れ込みやすいのか、どう見つけてどう直すのかを、受注事務の手元でできる範囲に絞って整理します。

見た目は同じでも、別の文字

電話番号の区切りに使われがちな記号を並べると、次のようになります。

記号名前よく紛れ込む経路
-半角ハイフン(ハイフンマイナス)多くの取込先が受け付ける、いわば「正解」の記号
-全角ハイフン(全角のマイナス)日本語入力のまま「-」キーを押したとき
ー長音記号(カタカナの伸ばし棒)日本語入力の変換で「ー」が選ばれたとき
−マイナス記号記号の変換候補から選んだとき、他の文書からのコピー
‐ ― –ハイフン・ダッシュ類Wordなどで作った文書、Webページからのコピー

画面のフォントによっては、これらがほとんど見分けられません。取込先の多くは電話番号を「半角数字と半角ハイフン」または「半角数字のみ」と決めているため、全角や似た記号が1つでも混ざると、その行だけ形式違反としてエラーになります。取込先によってはエラーにならずに受け付けてしまい、あとで検索や送り状の印字で困る、という形で表に出ることもあります。

受注データで混ざりやすい場面

受注事務の現場では、次のような経路で似た記号が入りやすくなります。

  • 日本語入力のまま電話番号を打った: 数字は全角・半角どちらでも見た目が近く、区切りだけ全角の「-」や長音の「ー」になっていることがあります
  • 注文書のFAXやメールからコピーした: 取引先が作った注文書のハイフンが、もともとマイナス記号やダッシュだった場合、そのまま持ち込まれます
  • 担当者によって入れ方が違う: 同じ得意先マスタでも、入力した人によって「03-1234-5678」「03(1234)5678」「0312345678」と書き方が揺れていることがあります
  • Excelで開いて保存した: 電話番号の列が数値として扱われると、ハイフンなしの番号は先頭の0が消えます(「0312345678」が「312345678」になる)。0落ちの詳しい対処は基幹システムへのCSV取込でよくあるエラーと対処法で整理しています

最後の0落ちは、ハイフンを取り除いて「数字のみ」にそろえたときほど起きやすくなる点に注意が必要です。ハイフン付きの「03-1234-5678」はExcelが文字として扱うので0は消えませんが、ハイフンを外した瞬間に数値と見なされるためです。

どれが混ざっているかを見つける

目で見て分からない記号を探すには、次の方法が手軽です。

  1. エラーメッセージの行番号を確認する: 取込先が「◯行目」と示してくれる場合は、その行の電話番号を消して半角で打ち直すのが一番早い対処です
  2. Excelの検索で記号を1種類ずつ探す: 「検索と置換」(Ctrl+F)で、全角の「-」、長音の「ー」、マイナス記号「−」を順に検索し、電話番号の列に何件あるかを確かめます。記号は上の表からコピーして検索欄に貼り付けると確実です
  3. 文字数を数える: =LEN(B2) で文字数を出すと、半角数字とハイフンだけなら固定電話は12文字前後になります。括弧や空白が混ざっている行は、桁数が揃わないので見つけやすくなります

直し方: 置換で半角ハイフンにそろえる

見つかったら、電話番号の列だけを選んだ状態で「検索と置換」(Ctrl+H)を使い、似た記号を半角のハイフン「-」に置き換えます。全角の「-」、長音の「ー」、マイナス記号「−」、ダッシュ類を、1種類ずつ順に置換していきます。

全角を半角にそろえるExcelのASC関数(=ASC(B2))も便利ですが、これだけでは直りきらない場合があります。たとえば長音の「ー」は、ASC関数で半角カナの「ー」になるだけで、ハイフンにはなりません。ASC関数で数字を半角にそろえたあと、置換で区切り記号を半角ハイフンに統一する、という2段階で考えておくと安心です。

取込先が「ハイフンなし・数字のみ」を求める場合は、区切り記号を空欄に置換して取り除きます。このときは先に電話番号の列の表示形式を「文字列」にしておかないと、上で書いたように先頭の0が消えるので、順番に気をつけてください。

なお、電話番号の正しい書き方は取込先ごとに決まっています。ハイフンありかなしか、括弧を使ってよいか、桁数の上限はいくつかは、取込先の項目仕様(CSVのレイアウト表)で確認するのが確実です。

予防策: 電話番号は「マスタに1回だけ」入れる

毎回の受注データに電話番号を打ち込んでいると、そのたびに記号が揺れる機会が増えます。根本的には、次の運用にしておくと揺れが起きにくくなります。

  1. 電話番号は得意先マスタで持つ: 受注のたびに入力するのではなく、得意先マスタに1回だけ正しい形で登録し、受注データは得意先コードで紐付けて引いてくる形にします。直す場所が1か所になります
  2. マスタに登録するときの書き方を決めておく: 「半角数字+半角ハイフン」など社内の書き方を1つ決め、登録時はその形で入れます。既存マスタは一度、上の置換手順で整えておきます
  3. CSVを送る前にテキストエディタで確認する: 保存したCSVをメモ帳などで開き、電話番号の位置に全角の記号が混ざっていないか、先頭の0が残っているかを先頭の数行で確かめます

まとめ

  1. 電話番号の取込エラーは、数字ではなく区切りのハイフンが原因のことが多い。全角ハイフン・長音記号・マイナス記号・ダッシュ類は見た目が似ていても別の文字
  2. 日本語入力のままの入力、注文書からのコピー、担当者ごとの書き方の違いで混ざりやすい
  3. Excelの検索で記号を1種類ずつ探し、置換で半角ハイフンにそろえる。ASC関数だけでは長音記号は直らない
  4. ハイフンを外して数字のみにする場合は、先に列を文字列にしないと先頭の0が消える
  5. 電話番号は得意先マスタに1回だけ正しい形で登録し、受注データからは得意先コードで引くと揺れが起きにくい

手前味噌の紹介

この記事を書いているのは、注文書特化サービス注文書係(ちゅうもんしょがかり)の運営者です。FAX・手書きの注文書をアップロードするとAIが下書きを作り、担当者は自信のない項目だけを確認して確定します。転記にかかる時間を1/10程度に圧縮することを狙ったサービスです。

注文書係が注文書から読み取るのは、取引先名・受注日・注文番号と、明細の品番・品名・数量・単位・単価です。電話番号は読み取り対象に含めていません。電話番号のような得意先ごとに決まっている情報は、この記事の予防策のとおり基幹システムの得意先マスタで持ち、注文書から読み取った受注データには毎回書き写さない、という使い方を前提にしています。

無料トライアル(30枚または14日間、クレジットカード登録不要)で、実際にお使いの帳票との相性を確かめてみてください。

よくある質問

Q. 電話番号は正しく見えるのに、CSV取込でエラーになるのはなぜですか?
区切りのハイフンに、見た目が似ているだけの別の文字が混ざっている可能性があります。全角ハイフン「-」、長音記号「ー」、マイナス記号「−」、ダッシュ類はフォントによってはほとんど見分けられませんが、取込先が半角ハイフンしか受け付けない場合、その行は形式違反としてエラーになります。
Q. 似た記号が混ざっている行はどうやって見つければいいですか?
取込先のエラーメッセージが行番号を示していればその行を半角で打ち直すのが早い対処です。全体を調べる場合は、Excelの検索で全角ハイフン・長音記号・マイナス記号を1種類ずつ探すか、LEN関数で文字数を出して桁数が揃わない行を探します。
Q. ExcelのASC関数で全角を半角にすれば直りますか?
直りきらない場合があります。長音記号「ー」はASC関数で半角カナの「ー」になるだけで、ハイフンにはなりません。ASC関数で数字を半角にそろえたあと、検索と置換で区切り記号を半角ハイフンに統一する2段階で考えておくと安心です。
Q. ハイフンを取って数字だけにしたら、先頭の0が消えてしまいました。
ハイフン付きの電話番号はExcelが文字として扱うため0は消えませんが、ハイフンを外すと数値と見なされて先頭の0が消えます。ハイフンを取り除く前に、電話番号の列の表示形式を「文字列」にしておいてください。

← コラム一覧へ戻る