Applies ToAccess for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

計算された一連の範囲内で値が出現する場所を示す Variant (String) を返します。

構文

Partition( number, start, stop, interval)

Partition 関数構文の引数は次のとおりです。

引数

説明

number

必須。 範囲に対して評価する整数です。

start

必須。 数値範囲全体の最初の整数です。 0 より小さい値は指定できません。

stop

必須。 数値範囲全体の最後の整数です。 start 以下の値は指定できません。

interval

必須。 数値範囲全体 (start から stop まで) の中の区画のサイズを指定する整数です。

解説

Partition 関数は、数値範囲全体の中で number が含まれる特定の範囲を特定し、その範囲を示す Variant (String) を返します。 Partition 関数は、クエリで最も役に立ちます。 たとえば、さまざまな範囲 (1 から 1000、1001 から 2000 など) に含まれる注文の数を示す選択クエリを作成できます。

次の表は、 開始停止および間隔 の引数の 3 つのセットを使用して範囲を決定する方法を示しています。 [最初の範囲] 列と [最後の範囲] 列には、 パーティション から返される値が表示されます。 範囲は lowervalue:uppervalue で表されます。ここで、範囲の下限 (下値) は、範囲の上端 (上値) からコロン (:) で区切られます。

start

stop

interval

最初の範囲より前

最初の範囲

最後の範囲

最後の範囲より後

0

99

5

" :-1"

" 0:4"

" 95:99"

" 100: "

20

199

10

" :19"

" 20:29"

" 190:199"

" 200: "

100

1010

20

" :99"

" 100:119"

" 1000:1010"

" 1011: "

上の表の 3 行目は、startstop によって定義される範囲が interval によって均等に分割できない場合の結果を示します。 最後の範囲は stop に達していますが (11 個の値)、interval は 20 です。

Partition は、コロンの左右の文字数が等しくなるように (stop の文字数より 1 だけ大きい文字数)、必要に応じて先頭にスペースを追加して返します。 これにより、Partition を他の値と共に使った場合でも、結果のテキストは以降の並べ替え操作の間に正しく処理されます。

interval が 1 の場合は、start 引数と stop 引数に関係なく、範囲は number:number になります。 たとえば、interval が 1、number が 100、stop が 1000 の場合、Partition は " 100: 100" を返します。

いずれかの引数が Null の場合、PartitionNull を返します。

クエリの例

結果

SELECT Partition(unitprice,40,240,20) AS PriceRange, count(productsales.unitprice) AS Count FROM productSales GROUP BY Partition(unitprice,40,240,20);

"unitprice" フィールドの値の範囲のセットを "start"(40) から "stop"(240) に等しい "interval"(20) サイズで作成し、それぞれの範囲の "unitprice" の数を計算します。 列 PriceRange に範囲を表示し、列 'Count' に count を表示します。

VBA の例

この例では、Freight フィールドを含む Orders テーブルがあるものとします。 配送料が各範囲に含まれる注文の数をカウントする選択プロシージャを作成します。 最初に Partition 関数を使ってこれらの範囲を設定した後、SQL の Count 関数で各範囲の注文の数をカウントします。 この例の Partition 関数の引数は、start = 0、stop = 500、interval = 50 です。 したがって、最初の範囲は 0:49 であり、上限の 500 まで同様に分割されます。

SELECT DISTINCTROW Partition([freight],0, 500, 50) AS Range,Count(Orders.Freight) AS CountFROM OrdersGROUP BY Partition([freight],0,500,50);

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。

コミュニティは、質問をしたり質問の答えを得たり、フィードバックを提供したり、豊富な知識を持つ専門家の意見を聞いたりするのに役立ちます。