Googleスプレッドシートのデータを賢く制限!ARRAY_CONSTRAIN関数の使い方と実例

Sheet基本

ARRAY_CONSTRAIN 完全ガイド
配列の出力サイズを切り詰めて使いやすくする

FILTERやQUERYの出力が多すぎるとき、表示する行数・列数を指定してトリミングする。上位N件の絞り込みや特定の列だけ取り出す用途に使う。

GASとの関係:array.slice() で同じことができる

GASの data.slice(0, 5) で最初の5件を取り出す操作は ARRAY_CONSTRAIN と同じです。GASなら行・列の両方を slice で制御できます。

GASで自動化を学ぶ →
目次

ARRAY_CONSTRAINとは

ARRAY_CONSTRAINは配列(範囲や他の関数の結果)の行数・列数を指定サイズに切り詰めて返す関数です。FILTERやQUERYの結果が多すぎるとき、上位N件だけ取り出したいときに使います。

基本構文

=ARRAY_CONSTRAIN(配列, 行数, 列数)
// A2:C100 の最初の5行・3列分だけ返す
=ARRAY_CONSTRAIN(A2:C100, 5, 3)

// FILTERの結果を上位10件に制限
=ARRAY_CONSTRAIN(FILTER(A2:C100, B2:B100="東京"), 10, 3)

実務でよく使うパターン

パターン1:ランキング上位N件を取り出す

// SORT で降順にしてから上位10件を取り出す
=ARRAY_CONSTRAIN(SORT(A2:C100, 3, FALSE), 10, 3)

// 売上TOP5の商品名と金額(2列)だけ
=ARRAY_CONSTRAIN(SORT(A2:B100, 2, FALSE), 5, 2)

パターン2:QUERYの代わりにLIMITなしでN件制限

// FILTER の結果を5件に制限(QUERYのLIMITと同じ効果)
=ARRAY_CONSTRAIN(FILTER(A2:A, B2:B="東京"), 5, 1)

パターン3:列数を制限して特定の列だけ取り出す

// A〜E列の5列あるデータからA〜C列の3列だけ使う
=ARRAY_CONSTRAIN(A2:E100, COUNTA(A2:A), 3)

ARRAY_CONSTRAIN vs QUERYのLIMIT

方法メリットデメリット
ARRAY_CONSTRAINどんな関数の結果にも使える。FILTER・SORT・UNIQUE等と組み合わせ可能行数を計算して正確に指定が必要
QUERYのLIMITQUERY文の中でシンプルに書けるQUERYの外の関数との組み合わせが面倒
INDEX(FILTER(), row, col)1件だけ取り出すならシンプル複数行はARRAY_CONSTRAINの方が楽

行数を動的にする

// データ件数分だけ(全データ)だが列は3列に制限
=ARRAY_CONSTRAIN(FILTER(A2:F, B2:B="東京"), ROWS(FILTER(A2:F, B2:B="東京")), 3)

// COUNTIFと組み合わせて動的に上限設定
=ARRAY_CONSTRAIN(SORT(A2:B100, 2, FALSE), MIN(10, COUNTA(A2:A)), 2)

この知識をGASで活かす

GASでFILTER的な処理をした後に件数を制限するとき、ARRAY_CONSTRAINと同じくslice()でシンプルに実装できます。スプレッドシートで動作確認してからGASに移植する手順が実用的です。

Free Newsletter

AIを業務に活かしたいなら
SMR-Labメルマガ

毎週火曜10時、コピペで使えるChatGPTプロンプト・
GASテンプレートをお届け。登録は1分・完全無料。

▶ 無料で登録する

📧 無料メルマガ登録

DX・AI活用のヒントを週1回お届け。登録特典:すぐ使えるプロンプト集&GASテンプレート。

登録情報は第三者に提供しません。いつでも配信停止できます。

目次