最小/最大関数
最小/最大関数は、一連の値の最小値と最大値を取得します。Min/Max関数は数値 データ型 でのみ使用します(Between関数は例外で、文字列データ型も処理します)。
Between
BETWEEN(x, min, max)
: 値(x)が他の2つの値(minとmax)の両端を含む間にあるかどうかをテストします。xがminとmaxの間にある場合、TRUEを返します。xがminとmaxの間にない場合、FALSEを返します。
値が2つの値の間にあるとみなされるには、その値が最小値以上、最大値以下である必要があります。
すべてのパラメーターは、数値または文字列*(日付/時刻を含む)データ型である必要があります。Blobと空間オブジェクトはサポートされていません。さらに、すべてのパラメーターが同じデータ型カテゴリに属している必要があります。たとえば、すべてが数値であるか、文字列または日付/時刻である必要があります。
文字列データ型の場合、評価時に大文字と小文字は区別されません。たとえば、「cat」は「CAT」と同じように扱われます。
*複雑な文字列の比較
全角文字と半角文字が混在した文字列、ローカライズされた辞書を指定した場合など、より複雑な文字列の比較の場合、辞書のソート順に予期しない結果が生じることがあります。
正確な結果を得るために、 CompareDictionary関数 または特定の辞書を指定した ソートツール を組み合わせて使用することをお勧めします。例:
CompareDictionary(minString, mystr) && CompareDictionary(mystr,maxString)
例
BETWEEN(2, 2, 4)
TRUEを返します。
BETWEEN(4.56, 4.4, 4.5)
FALSEを返します。
BETWEEN("2022-10-31", "2021-01-01", "2021-12-31")
FALSEを返します。
BETWEEN(DateTimeAdd("13:05:23", 30, "minutes"), "12:00:00", "14:00:00")
はTRUEを返します。
BETWEEN("cat", "CAT", "dog")
TRUEを返します。
NOTBETWEEN(5, 1, 10)
はFALSEを返します。5は1と10の間にあるため、NOT演算子により式はFALSEと評価されます。
Bound
Bound(x, min, max)
: (x < min) の場合は最小値を返し、そうではなく (x > max) の場合は最大値を返し、それ以外の場合は (x) を返します。
例
Bound(6,1,5)
は 5 を返します。
Bound(3,1,5)
は 3 を返します。
Max
Max(v0, v1, ..., vn)
: リスト中の最大値を返します。
例
Max(15, 180, 7, 13, 45, 2, 13)
は 180 を返します。
MaxIDX
MaxIDX(v0, v1,..., vn)
: リストから最大値の 0 ベースのインデックスを返します。
例
MaxIDX(15,180,7,13,45,2,13)
1を返します。
Min
Min(v0, v1,..., vn)
: リスト中の最小値を返します。
例
Min(15, 180, 7, 13, 45, 2, 13)
は 2 を返します。
MinIDX
MinIDX(v0, v1,..., vn)
: リストから最小値の 0 ベースのインデックスを返します。
例
MinIDX(15, 180, 7, 13, 45, 2, 13)
5を返します。