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

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

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

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

品番 品名
hinban-1 Seihin-A1
hinban-2 Seihin-B2
hinban-3 Seihin-c3
hinban-4 Seihin-d-4

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

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

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

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

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

になります。

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

=LEN(B2)=LENB(B2)

式の解説

=LEN(B2)=LENB(B2)

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

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

LEN関数の第1引数

LEN(B2)

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

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

LENB関数の第1引数

LENB(B2)

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

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

Massteryで対応するとこうなる

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

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

指定内容

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

正規表現の解説

[^\x00-\x7E]+

全角文字は大量にあるため正規表現でも表現しにくい内容です。 ひっかけ問題みたいですが、半角文字以外とする指定しますと、全角の意味になります。 以外は、^(キャレット)になりますので、加えてASCIIコード表の半角スペースからチルダ(~)とすると、

[^\x00-\x7E]+

となります。 キャレットを先頭に付け、始まりの半角スペースと終わりの~は16進数で表現して、間にハイフン(-)を記載します。 そして文字の範囲内のいずれかの文字がマッチするかを指定するために、

[^\x00-\x7E]+

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

[^\x00-\x7E]+

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

関連記事

同じカテゴリの記事

お問い合わせ

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

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

Close Bitnami banner
Bitnami