入力データが数値かどうか判定したい

キーワード:数値判定,Excel,CSV
シナリオ一覧に戻る

概要

入力データが数値かどうか判定したい場合は、正規表現にマッチロジックを使用します。

サンプルプロジェクトの説明

Excelファイルの「注文明細」を読み取り、「数量」が数値かどうか判定します。
「数量」が数値のデータ・数値でないデータをそれぞれ別のCSVファイルへ出力します。

処理の流れ

サンプルプロジェクトの処理の流れは以下の通りです。
  1. シートから読み取り処理」でExcelファイルの「注文明細」を読み取ります。
  2. 繰り返し(データ件数)処理」で「注文明細」の件数分、以下の処理を繰り返します。
  3. 変数代入処理」の「正規表現にマッチロジック」で「数量」が数値かどうか判定し、結果をスクリプト変数「数値チェック」に代入します。
  4. 条件分岐処理」でスクリプト変数「数値チェック」の値を判定します。
    1. 数値だった場合、CSVファイル「output1.csv」に出力します。
    2. 数値でなかった場合、CSVファイル「output2.csv」へ出力します。
実行結果のイメージについては、サンプルプロジェクトのサンプルデータ「output1.csv」および「output2.csv」を参照してください。

ポイントとなる機能

名前 説明 ツールパレット上の場所
正規表現にマッチロジック 入力文字列が指定正規表現にマッチするかどうか判定します。 「条件」-「文字列」-「正規表現にマッチ」

処理のポイント

正規表現にマッチロジックを使用して数値かどうかの判定を行います。
正規表現にマッチロジックは、入力データが正規表現にマッチする場合に「true」を、マッチしない場合に「false」を返します。
数値の判定を行う場合の正規表現は、半角数字列を表す「\d+」を使用します。
正規表現の詳細については、「正規表現にマッチ」を参照してください。

サンプルプロジェクトの使用方法

上記処理を実装したサンプルプロジェクトを用意しています。サンプルプロジェクトを使用する場合の手順は、以下の通りです。

サンプルプロジェクト名 rl_reference_037.zip
  1. サンプルプロジェクトの展開
    サンプルプロジェクト「rl_reference_037.zip」を展開します。

  2. プロジェクトのアップロード
    「rl_reference_037.zip」を展開後に作成される「rl_reference_037プロジェクト」ディレクトリがプロジェクトファイルとなります。
    DataSpider Studioを起動し、マイプロジェクトの画面から[ファイル]-[ローカルからアップロード]で展開したディレクトリ「rl_reference_037プロジェクト」をアップロードしてください。

  3. サンプルデータの準備
    「rl_reference_037.zip」を展開後に作成される「samples」ディレクトリがサンプルデータとなります。
    $DATASPIDER_HOME/server/samplesディレクトリに上書きしてください。

スクリプトの作成手順

プロセスフローおよびデータフローは、「サンプルプロジェクトの説明」のスクリプト画像を参照して適宜設定してください。
  1. 判定結果として使用するスクリプト変数を作成します。

  2. デザイナのツールパレット「ファイル」-「Excel」-「シートから読み取り」から、シートから読み取り処理をスクリプトキャンバスに配置します。

  3. デザイナのツールパレット「基本」-「フロー」-「繰り返し(データ件数)」から、繰り返し(データ件数)処理をスクリプトキャンバスに配置します。

  4. デザイナのツールパレット「基本」-「処理」-「変数代入」から、変数代入処理をスクリプトキャンバスに配置します。

  5. 変数代入処理のMapperエディタを開き、「数量」が数値かどうか判定し、その結果を真偽値型のスクリプト変数に代入する処理を作成します。

  6. デザイナのツールパレット「基本」-「フロー」-「条件分岐」から、条件分岐処理をスクリプトキャンバスに配置します。

  7. 「数量」が数値のデータを出力するため、デザイナのツールパレット「ファイル」-「CSV」-「CSVファイル書き込み」から、CSVファイル書き込み処理をスクリプトキャンバスに配置します。
    条件分岐処理の条件分岐開始アイコンからプロセスフローを引き、スクリプト変数「数値チェック」の値が「false」でないデータを出力します。

  8. 「数量」が数値でないデータを出力するため、デザイナのツールパレット「ファイル」-「CSV」-「CSVファイル書き込み」から、CSVファイル書き込み処理をスクリプトキャンバスに配置します。
    条件分岐処理の条件アイコンからプロセスフローを引き、スクリプト変数「数値チェック」の値が「false」のデータを出力します。

  9. スクリプトを実行し、正常終了すれば成功です。