スキップしてメイン コンテンツへ

Partition 関数

計算された一連の範囲内で値が出現する場所を示す 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 など) に含まれる注文の数を示す選択クエリを作成できます。

次の表に、 startstop、およびintervalの3つのセットの引数を使用して、範囲を決定する方法を示します。 最初の範囲と最後の範囲の列は、どのようなパーティションが返されるかを示しています。 範囲は、 lowervalue:uppervalueによって表されます。この場合、範囲の下位端 (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 を返します。

クエリの例

結果

[Partition (unitprice, 40240, 20)] を PriceRange、count (productsales) を、productSales GROUP BY Partition (単価、40240、20) の個数としてカウントします。

フィールド "unitprice" ("start") から "stop" (20) までの範囲の値の範囲を作成し、それぞれに等しい "interval" (20) のサイズを指定して、"unitprice" の数を計算します。 列 PriceRange の範囲と列 ' 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 Count
FROM Orders
GROUP BY Partition([freight],0,500,50);

注:  このページは、自動翻訳によって翻訳されているため、文章校正のエラーや不正確な情報が含まれている可能性があります。 私たちの目的は、このコンテンツがお客様の役に立つようにすることです。 情報が役に立ったかどうか、ご意見をお寄せください。 参考までに、こちらから英語の記事をお読みいただけます。

Office のスキルを磨く
トレーニングの探索
新機能を最初に入手
Office Insider に参加する

この情報は役に立ちましたか?

ご意見をいただきありがとうございます。

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×