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 ・・・新着記事一覧を見る
Gemini CLIの徹底解説:AIをターミナルから使いこなす|生成AI活用研究(2025-07-03)
Gemini CLIとPowerShellでVBAerのAI活用を加速する実践ガイド|生成AI活用研究(2025-07-02)
「Gemini CLI」によるExcel自動化フレームワーク:実践ガイド|生成AI活用研究(2025-07-01)
AI(Gemini)とエクセル数式対決 その3|生成AI活用研究(2025-06-24)
不合理の砦|AIが計算を終えた場所から、人間の価値が始まる|生成AI活用研究(2025-06-23)
生成AIはExcelの複雑な数式を書けるのか?|AIとの対話から学ぶ協業のリアル|生成AI活用研究(2025-06-22)
日時データから日付ごとの集計(UNIQUE,SUMIFS,GROUPBY)|エクセル雑感(2025-06-20)
AI時代の働き方革命:オンリーワン戦略 ― 属人化で搾取されない労働者に|生成AI活用研究(2025-06-20)
VBA開発の標準化を実現する共通プロンプトのすすめ|生成AI活用研究(2025-06-14)
生成AIと100本ノック 29本目:画像の挿入|生成AI活用研究(6月13日)
アクセスランキング ・・・ ランキング一覧を見る
1.最終行の取得(End,Rows.Count)|VBA入門
2.変数宣言のDimとデータ型|VBA入門
3.繰り返し処理(For Next)|VBA入門
4.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
5.RangeとCellsの使い方|VBA入門
6.FILTER関数(範囲をフィルター処理)|エクセル入門
7.セルのクリア(Clear,ClearContents)|VBA入門
8.メッセージボックス(MsgBox関数)|VBA入門
9.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
10.マクロとは?VBAとは?VBAでできること|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.