はじめに
先日、ある範囲の数値を0から100の範囲に置き換えたい作業がありました。わかりやすい例でいうと以下の通りです。
数値の範囲:0 ~ 10
指定した数値:2
数値の範囲が-50~50になると指定した「2」はいくつになるか?答えは「-30」です。管理人は箱をイメージして答えを出したのですが、計算式は?となると「・・・」となってしまいました。
使う機会は少ないでしょうが、知っておくと何かの役に立つことがあるかもしれないので手順をまとめておきます。
手順
変換前のリスト
0.0094
0.0146
0.0089
0.0135
0.0122
0.0072
0.0005
-0.0031
-0.0009
-0.0024
-0.0042
0.0006
0.0036
0.0069
0.0096
0.0184
0.0213
0.0236
0.0234
0.0285
0.0331
計算式
変換前のリストを0~100の範囲に置き換えます。マッピングし直していきます。
冒頭の例を当てはめてみます。
=-50+(50-(-50))*((2-0)/(10-0))
=-50+100*(2/10)
=-50+20
=-30
結果
実データで計算した結果です。
| 変換前 | 変換後 |
|---|---|
| 0.0094 | 36.46113 |
| 0.0146 | 50.40214 |
| 0.0089 | 35.12064 |
| 0.0135 | 47.45308 |
| 0.0122 | 43.96783 |
| 0.0072 | 30.563 |
| 0.0005 | 12.60054 |
| -0.0031 | 2.949062 |
| -0.0009 | 8.847185 |
| -0.0024 | 4.825737 |
| -0.0042 | 0 |
| 0.0006 | 12.86863 |
| 0.0036 | 20.91153 |
| 0.0069 | 29.75871 |
| 0.0096 | 36.99732 |
| 0.0184 | 60.58981 |
| 0.0213 | 68.36461 |
| 0.0236 | 74.53083 |
| 0.0234 | 73.99464 |
| 0.0285 | 87.66756 |
| 0.0331 | 100 |





コメント