hatena
hatena
2024/05/30 (木) 21:09:26
連想配列のキーに、以上・未満の条件式が使えれば良いのですが、可能なのでしょう?
連想配列のキーは完全一致しか無理です。完全一致なので高速に検索できるのです。
If x < 63000 Then
gr = 1
Else
If x >= 63000 And x < 73000 Then
gr = 2
Else
If x >= 73000 And x < 83000 Then
gr = 3
End if
このコードなら、xが10000間隔でgrが1増えていくという規則性があるので、下記のようなコードで可能です。
If x < 63000 Then
gr = 1
Else
gr = (x - 63000) \ 10000 + 2
End If
間隔が不規則であるなら、下記のようなテーブルを作成してそれを参照すればいいでしょう。
gr | x_low |
---|---|
1 | 0 |
2 | 63000 |
3 | 73000 |
4 | 85000 |
5 | 92000 |
6 | 107000 |
x_lowには範囲の下限値を入力しておきます。
また、インデックスを設定しておくと高速に検索できます。
下記のコードでgrを取得できます。
gr = DMax("gr","tbl1","x_low<=" & x)
通報 ...