半角文字があるかを調べたい

半角文字があるかを調べたい

全角文字と半角文字が混在する

ご提供頂くデータの中に、全角文字と半角文字が混在している場合があり、そのままデータベースに保存できない場合があります。

品番 品名
hinban-1 製品A1
hinban-2 製品B2
hinban-3 製品C3
hinban-4 製品D4

これはデータ入力時にあやまって入力した場合や、データ入力後の目視チェックでも差が分かりにくく、見落としてしまう場合などが原因です。

半角文字があるかどうか調べる

半角文字が含まれているかどうか調べるには、LEN(レン)関数とLENB(レンビー)関数を使用します。

LEN関数は、引数に指定したセル、または文字列の純粋な文字数を返し、LENB関数はバイト数を返します。それぞれの書式は、

LEN(文字列)
LENB(文字列)

になります。

冒頭の表を例に、品名のデータに半角文字が含まれていないかチェックするとします。

=LEN(B2)*2=LENB(B2)

式の解説

=LEN(B2)*2=LENB(B2)

LEN関数で返される文字数を2倍した数とLENB関数で返されるバイト数が同じであればTRUE、異なればFALSEを返す式です。

文字数の2倍の数とバイト数が異なる場合は半角文字が含まれていることになります。

LEN関数の第1引数

LEN(B2)

文字数を調べたいセル、または文字列や数値を指定します。

本例では品名であるセル"B2"を指定します。

LENB関数の第1引数

LENB(B2)

バイト数を調べたいセル、または文字列や数値を指定します。

本例では品名であるセル"B2"を指定します。

Massteryで対応するとこうなる

投稿時点で、Massteryには半角文字を調べる関数は用意しておりません。 しかしながら半角文字の1つ1つを条件に指定しますと指定する文字が多くなりますので、Massteyでは、正規表現という特定の文字や文字のパターンを省略して表現する方法が使えます。半角文字を正規表現を使い指定する方法をご案内します。

Massteryでの半角文字チェック例 前半 Massteryでの半角文字チェック例 後半

指定内容

変換対象カラム
Massteryはフォーマットの項目単位で変換を指定しますので、入力ファイルの項目(列の名称)を指定します。今回は項目の状態を調べて出力する項目を新たに設けて割り当てるようにします。
変換方法
変換対象カラムに値またはロジックを適用する「=」を指定します。
値または変換ロジック
状態を分かりやすく説明するために出力したいテキストを記述しますが、その他にも出力することもあるので別のテキストが追加されるようにするため、数式“&”で連結するようにし、「”チェック結果”&[半角文字が含まれています]」と指定します。
条件1_仕入先項目
調べる入力フォーマットの項目名を指定します。
条件1_演算子
数値以外と限定した条件なので「=(完全一致)」を指定します。
条件1_値
正規表現を用いて半角文字を表します。項目にある文字すべてをチェックしますので、[ -~]+と表記します。

正規表現の解説

[ -~]+

半角文字を全て列挙しますと煩雑になることから、半角文字をある一定の範囲を表現します。 ASCIIコード表の半角スペースからチルダ(~)とすると、

[ -~]+

と始まりの半角スペース( )と終わりの~間にハイフン(-)を記載します。 そして文字の範囲内のいずれかの文字がマッチするかを指定するために、

[ -~]+

と、角括弧で閉じます。 最後に項目内の文字は1文字以上となりますので複数ある文字のチェックを行うため、

[ -~]+

と+を語尾に加えて繰り返されるようにします。プラス(+)は、直前の文字の1回以上に一致するという意味となり、半角スペースからチルダまでの文字のどれかから構成される文字列に一致するような表現となります。

関連記事

同じカテゴリの記事

お問い合わせ

Massteryのより詳しい情報、ご対面でのご案内をご希望の方は是非お問い合わせください。
下記のお問い合わせフォームよりお申し込み頂ければ担当の営業からご連絡いたします。

運営会社 フォルシア株式会社

Close Bitnami banner
Bitnami