取得した値を範囲指定で、特定の値に変換させる方法

Avatar
いま

こんにちは。

DataSpiderのマッピングで、取得した値を範囲指定で、特定の値に変換させる方法について、ご教授願います。

 

やりたい事

 取得した数値が(1~30)の場合、1に置き換え

 取得した数値が(31~60)の場合、2に置き換え

 取得した数値が(61~90)の場合、3に置き換え

 取得した数値が(91以上)の場合、9に置き換え

 

方法1

 文字列毎に置き換えロジックだと

 1だったら1、2だったら1、3だったら1 と、登録していけば置き換えできますが、

 設定しなければならない値が多く、現実的ではありません。

 

方法2

 取得した値と、固定値=31 を比較し、

 未満ロジックでtrueなら1 false だったら、固定値=61 との比較をする・・・と

 組み合わせればできますが、スマートではありません。

 

他の方法で実践された方がいらっしゃいましたら、方法をご教授下さい。

数値の範囲指定で変換する方法って、無いのでしょうか?

この記事は役に立ちましたか?

0が役に立ったといっています

コメント

  • Avatar
    aki

    こんにちは。

    スイッチ判定で条件数を 3 にすれば、それなりにスッキリした配置になりそうです。

     

    1番目のハンドラ:数値の比較で30以下

    2番めのハンドラ:1

    3番目のハンドラ:数値の比較で60以下

    4番めのハンドラ:2

    5番目のハンドラ:数値の比較で90以下

    6番めのハンドラ:3

    7番めのハンドラ:9

     

    ちなみに、値の要件が絶対変更されないならばですが、

    1 を引いて 30 で割ってから "[^1-3]+" を "9" に置換することでも満たせそうですね。

    0
  • Avatar
    いま

    aki様

    コメントありがとうございます!

    確かにスマートになりそうですね!

    お教え頂いた方法のマッピングを試してみます。 結果については後日報告させて頂きます。

     

    値の要件は変わる可能性が高く、計算式での対応は厳しそうです。

    ただ、今後、固定値で割る処理を考慮する際の参考にさせて頂きます。

     

    0
  • Avatar
    いま

    aki様

    先週は、コメントありがとうございました。
    お教え頂いた、スイッチ判定でマッピングしてみました。
    イメージ通りの悔過が得られました事をご報告いたします。
    マッピングは、添付の形となりました。
    これ以上、単純化するのは難しそうですね。。。

     

    0
  • Avatar
    httky

    Mapper をスッキリさせたい目的なら、ローカルユーザ定義ロジックや

    グローバルユーザ定義ロジックといったユーザ定義ロジック系でまとめるとよいかと思います。

    0
  • Avatar
    おかべ

    本題とは関係ないですが、マッパーにレイヤを追加してみても少しは見やすくなるかもです!

    0
  • Avatar
    いま

    httky様
    おかべ様

    コメントありがとうございます!
    ユーザー定義ロジックについて、当方の知識不足で、使いこなせていない状況です。
    確かに、必要な機能を定義してしまえばよさそうですね。
    もう少し、習熟したら試してみたいと思います。

    レイヤ機能について、こちらも当方の知識不足で、その機能がある事を知りませんでした。
    この機能、便利ですね!
    線が多すぎてうんざりしているマッピングがあったのですが
    レイヤ機能で、スッキリさせてみます。

    0

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