Skip to main content

最小/最大関数

最小/最大関数は、一連の値の最小値と最大値を取得します。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を返します。