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

Avatar
dstn

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

キーワード:数値判定,Excel,CSV

概要

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

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

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

処理の流れ

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

ポイントとなる機能

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

処理のポイント

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

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

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

サンプルプロジェクトのダウンロード 逆引きリファレンス シナリオ037のサンプルプロジェクト
  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エディタを開き、「数量」が数値かどうか判定し、その結果を真偽値型のスクリプト変数に代入する処理を作成します。
    • マッピングキャンバスは、以下のように設定します。

      マッピングキャンバス



      番号 ロジック名 説明 ツールパレット上の場所
      (1) 正規表現にマッチ 入力文字列が指定正規表現にマッチするかどうか判定します。
      [必須設定]タブの[正規表現パターン]には「\d+」を入力します。
      「条件」-「文字列」-「正規表現にマッチ」

      処理のポイント
      • [正規表現パターン]に半角数字列を表す正規表現を設定することで、数値かどうかの判定が可能です。
      • 入力データが数値の場合は「true」、数値でない場合は「false」がスクリプト変数に代入されます。
        正規表現の詳細については、DataSpider Servistaヘルプの「正規表現にマッチ」を参照してください。

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

      [必須設定]タブ


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

      [必須設定]タブ

      [書き込み設定]タブ



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

      [必須設定]タブ

      [書き込み設定]タブ



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

コメント

ログインしてコメントを残してください。

Powered by Zendesk