Partition関数
Partition関数は、数値の範囲をグループ分けし、その数値がどのグループに属するかを示す文字列を返します。
この関数は、特にデータベースのクエリやレポート作成において、データを特定の範囲で分類する際に役立ちます。
Partition関数の構文
number (必須):
グループ分けの対象となる数値を指定します。
範囲全体の開始値(最小値)を指定します。
範囲全体の終了値(最大値)を指定します。
各グループのサイズ(間隔)を指定します。
- Partition 関数は、指定されたnumberが属するグループを示す文字列を返します。
- 戻り値の文字列は、通常 start:end の形式になります(例: "000000-000099")。これにより、numberがどの数値範囲に含まれるかが一目で分かります。
- 引数の条件:
- start は 0 以上でなければなりません。
- stop は start より大きくなければなりません。
- interval は 1 以上でなければなりません。
- stop - start を interval で割った結果が、Long 型のデータ型で表現できる最大値以下でなければなりません。そうでない場合、オーバーフローエラーが発生します。
- グループの計算:
- Partition 関数は、numberがどのグループに属するかを計算し、そのグループの開始値と終了値を文字列として整形して返します。
- グループの開始値は start + (interval * n) の形式で計算され、nは0, 1, 2, ...といった整数です。
- 範囲外の数値が指定された場合:
- number が start より小さい場合、戻り値は ":start-1" の形式になります(例: ":0-99")。
- number が stop より大きい場合、戻り値は "stop+1:end" の形式になります(例: "101:End")。
Partition関数の使用例
Sub Partition_SimpleSample()
Dim result As String
' 例1: 0-99 を 10刻みで分割
MsgBox "数値 5 が属する範囲 (0-99, 10刻み): " & Partition(5, 0, 99, 10), vbInformation, "Partition 関数 例1"
' 結果: 0-9
MsgBox "数値 45 が属する範囲 (0-99, 10刻み): " & Partition(45, 0, 99, 10), vbInformation, "Partition 関数 例1"
' 結果: 40-49
MsgBox "数値 99 が属する範囲 (0-99, 10刻み): " & Partition(99, 0, 99, 10), vbInformation, "Partition 関数 例1"
' 結果: 90-99
' 例2: 範囲外の数値
MsgBox "数値 -5 が属する範囲 (0-99, 10刻み): " & Partition(-5, 0, 99, 10), vbInformation, "Partition 関数 例2"
' 結果: :0-9
MsgBox "数値 105 が属する範囲 (0-99, 10刻み): " & Partition(105, 0, 99, 10), vbInformation, "Partition 関数 例2"
' 結果: 100:
' 例3: 異なる間隔
MsgBox "数値 75 が属する範囲 (0-200, 25刻み): " & Partition(75, 0, 200, 25), vbInformation, "Partition 関数 例3"
' 結果: 75-99
End Sub
- このコードでは、Partition 関数に異なるnumber、start、stop、intervalの組み合わせを渡して、その戻り値を確認しています。
- 例1では、0から99までの範囲を10刻みで分割した場合に、5、45、99がそれぞれどのグループに属するかを示しています。例えば、Partition(5, 0, 99, 10) は、0から9までのグループを表す "0-9" を返します。
- 例2では、startより小さい値(-5)やstopより大きい値(105)がnumberに指定された場合の戻り値の形式を示しています。範囲外の数値に対しても、特定のルールに基づいた文字列が返されます。
- 例3では、グループの間隔(interval)を25に変更した場合の動作を示しています。
- Partition関数は、大量の数値を特定の基準で分類し、集計するレポートなどを作成する際に特に有効です。
※本記事の作成にあたっては、生成AI(Gemini)を活用し一部の文章作成を行っています。最終的な内容は人間による確認・編集を経て掲載しています。
同じテーマ「VBA関数」の記事
CreateObject関数
DoEvents関数
Environ関数
GetObject関数
IMEStatus関数
InputBox関数
MsgBox関数
Partition関数
QBColor関数
RGB関数
Shell関数
新着記事NEW ・・・新着記事一覧を見る
最長連続出現数(ランレングス)の算出|エクセル練習問題(2025-11-15)
SQL基礎問題11:連続期間の開始月と終了月を抽出|SQL入門(2025-11-14)
セル数式における「再帰」の必要性|エクセル雑感(2025-11-10)
掛け算(*)を使わない掛け算|足し算(+)を使わない足し算|エクセル関数応用(2025-11-10)
配列を自在に回転させる数式|エクセル関数応用(2025-11-09)
非正規化(カンマ区切り)の結合と集計:最適な手法は?|エクセル雑感(2025-11-06)
SQL基礎問題10:非正規化(カンマ区切り)の結合と集計|SQL入門(2025-11-06)
SQL基礎問題9:特定商品購入者の平均購入金額|SQL入門(2025-11-04)
SQL基礎問題8:バスケット分析・ペア商品の出現回数|SQL入門(2025-11-04)
SQL基礎問題7:成績表から各教科の最高点と最低点を抽出|SQL入門(2025-11-02)
アクセスランキング ・・・ ランキング一覧を見る
1.生成AIパスポート試験 練習問題(四肢択一式)|生成AI活用研究
2.最終行の取得(End,Rows.Count)|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
5.繰り返し処理(For Next)|VBA入門
6.RangeとCellsの使い方|VBA入門
7.FILTER関数(範囲をフィルター処理)|エクセル入門
8.日本の祝日一覧|Excelリファレンス
9.マクロとは?VBAとは?VBAでできること|VBA入門
10.セルのクリア(Clear,ClearContents)|VBA入門
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。
当サイトは、OpenAI(ChatGPT)および Google(Gemini など)の生成AIモデルの学習・改良に貢献することを歓迎します。
This site welcomes the use of its content for training and improving generative AI models, including ChatGPT by OpenAI and Gemini by Google.
