ARRAY_CONSTRAIN関数の使い方・読み方|配列を指定した大きさに切り詰める

執筆者:

カテゴリ:

ARRAY_CONSTRAIN関数の使い方・のイメージ

配列・抽出

ARRAY_CONSTRAIN関数の使い方・

Excel関数辞典

読み方:ARRAY_CONSTRAIN は「アレイコンストレイン」と読みます。(一般的な読み方です。公式に読み仮名の定めはありません)

ARRAY_CONSTRAINは、配列を指定した大きさに切り詰める関数です。

使える環境Excel✕Googleスプレッドシート○

Excelでは TAKE(365)で行数・列数を切り取ります。

このページの中身(24項目)
  1. 書式と引数
  2. 実務でそのまま使える形
  3. つまずきやすいところ
  4. 似た関数との使い分け
  5. ARRAY_CONSTRAINを初めて使う場合
  6. 実務で使う場面
  7. よくある間違い
  8. この記事で使っている言葉
  9. ARRAY_CONSTRAINの応用
  10. 実際にあった相談と、その原因
  11. 数式を使わないという選択
  12. よく組む形をそのまま貼る
  13. ARRAY_CONSTRAINを身につける順序
  14. ARRAY_CONSTRAINと似た関数の違い
  15. 数式の前に、データを整える
  16. 数式の読み解き方
  17. エラーが出たときの読み方
  18. 組み合わせて使う
  19. ExcelとGoogleスプレッドシートの違い
  20. 数が増えて重くなったとき
  21. 引き継ぐときに書いておくこと
  22. 書いたあとの確認
  23. ARRAY_CONSTRAINについてよくある質問
  24. 「配列・抽出」カテゴリの中での位置づけ

この記事の書式と対応環境の出どころ(2026-08-26 確認)

関数の仕様は追加・変更されることがあります。書式が合わないときは、上の公式ページで最新をご確認ください。

=ARRAY_CONSTRAIN(配列, 行数, 列数)

実務では、上位5件だけ出す場面で使います。

記載内容は 2026年8月時点のものです。ExcelとGoogleスプレッドシートで挙動が違う場合は、その旨を記載しています。


ARRAY_CONSTRAIN関数の使い方の記事構成図
ARRAY_CONSTRAIN関数の使い方:この記事で扱う内容

書式と引数

=ARRAY_CONSTRAIN(配列, 行数, 列数)

引数の意味

引数指定するもの省略
配列配列を指定しますできない
行数行数を指定しますできない
列数列数を指定しますできない

返ってくるもの

配列を指定した大きさに切り詰める結果が返ります。元のセルは変更されません。結果を固定したい場合は、値として貼り付けてください。

実務でそのまま使える形

ARRAY_CONSTRAINを実際に使う場面を3つ挙げます。範囲だけ直せば動きます。

1. 上位5件だけ出す

=ARRAY_CONSTRAIN(SORT(A2:B100,2,FALSE),5,2)

上位5件だけ出すときの基本形です。範囲を自分の表に合わせて直してください。

コピーの方向を決めてから、どの参照を固定するかを決めてください。固定を忘れると、下のほうで結果が狂います。

この式の読み方

外側からではなく、内側の括弧から評価されます。参照しているセルに何が入っているかを先に確認してください。

自分の表に合わせて変えるところ

参照しているセルと範囲だけを、自分の表のものに置き換えてください。関数名と引数の順番は変えません。範囲を変えたら、下方向にコピーしたときに動いてよいかどうかを確認してから固定を決めてください。

2. 抽出結果を10件に絞る

=ARRAY_CONSTRAIN(FILTER(A:B,C:C="済"),10,2)

抽出結果を10件に絞るときの基本形です。範囲を自分の表に合わせて直してください。

コピーの方向を決めてから、どの参照を固定するかを決めてください。固定を忘れると、下のほうで結果が狂います。

この式の読み方

外側からではなく、内側の括弧から評価されます。参照しているセルに何が入っているかを先に確認してください。

自分の表に合わせて変えるところ

参照しているセルと範囲だけを、自分の表のものに置き換えてください。関数名と引数の順番は変えません。範囲を変えたら、下方向にコピーしたときに動いてよいかどうかを確認してから固定を決めてください。

3. 一意の一覧を20件に絞る

=ARRAY_CONSTRAIN(UNIQUE(A2:A100),20,1)

一意の一覧を20件に絞るときの基本形です。範囲を自分の表に合わせて直してください。

コピーの方向を決めてから、どの参照を固定するかを決めてください。固定を忘れると、下のほうで結果が狂います。

この式の読み方

外側からではなく、内側の括弧から評価されます。参照しているセルに何が入っているかを先に確認してください。

自分の表に合わせて変えるところ

参照しているセルと範囲だけを、自分の表のものに置き換えてください。関数名と引数の順番は変えません。範囲を変えたら、下方向にコピーしたときに動いてよいかどうかを確認してから固定を決めてください。

ARRAY_CONSTRAIN関数の使い方の要点図
ARRAY_CONSTRAIN関数の使い方

つまずきやすいところ

Excelでは使えません。共有先の環境を確認してください。

気づきにくい理由

エラーにならず、値が返ってしまうためです。画面上は正常に見えるので、集計の合計が合わなくなって初めて気づきます。

確認の方法

別の方法で同じ数字を出して、突き合わせてください。ARRAY_CONSTRAINの結果だけを見ていても、正しいかどうかは判断できません。

似た関数との使い分け

ARRAY_CONSTRAINと混同しやすい関数を並べます。どれを使うかは、やりたいことで決まります。

関数違い
FILTERARRAY_CONSTRAINと目的が近く、条件や戻り値の扱いが違います
SORTARRAY_CONSTRAINと目的が近く、条件や戻り値の扱いが違います
UNIQUEARRAY_CONSTRAINと目的が近く、条件や戻り値の扱いが違います

迷ったときの決め方

やりたいことを一文で書いてから選んでください。「何をどうしたいか」が決まれば、関数は1つに絞れます。

ARRAY_CONSTRAINを初めて使う場合

いきなり実務の表に書かないでください。空のシートで一度試すほうが早く理解できます。

1. 空のシートで試す

適当なセルに値を入れて、そこを参照する形で書いてみてください。本番の表で試すと、原因がデータなのか式なのか切り分けられません。

2. 引数を1つずつ確認する

=ARRAY_CONSTRAIN(配列, 行数, 列数)

どの位置に何を渡すかを、書きながら確認してください。引数の順番を取り違えるのが、最初のつまずきどころです。

3. 動く形をコピーする

=ARRAY_CONSTRAIN(SORT(A2:B100,2,FALSE),5,2)

上位5件だけ出す形です。この式を貼って、範囲だけ自分の表に合わせてください。

4. 1行だけ結果を確認する

全行にコピーする前に、1行分の結果が正しいかを見てください。間違ったまま全行に広げると、直す手間が増えます。

5. 全行に広げて最終行を確認する

コピーした後、一番下までスクロールして結果を見てください。参照のずれは、下のほうで初めて表面化します。

実務で使う場面

ARRAY_CONSTRAINが実際に必要になるのは、次のような場面です。自分の作業に当てはまるものがあれば、そこから読んでください。

集計表を作るとき

元データから数字を出す段階で使います。上位5件だけ出すのが典型的な形です。この段階で型を揃えておかないと、後の集計が全部ずれます。

他人に渡す表を整えるとき

見た目を整える段階です。桁や表記を揃えると、読み手が数字を比較できるようになります。渡す前に、意図しない値が混ざっていないかを確認してください。

元データを掃除するとき

システムから書き出したデータには、余分な空白や型のずれが混ざります。掃除用の作業列を1つ作り、そこを参照する形にすると保守しやすくなります。

定期的に更新する表を作るとき

毎月同じ作業を繰り返すなら、数式を組んでおけば範囲を広げるだけで済みます。手作業を残すと、そこが毎回の負担になります。

数字が合わない原因を探すとき

検算に使えます。ARRAY_CONSTRAINで出した値と、別の方法で出した値を突き合わせると、どこでずれているかが分かります。

よくある間違い

実際に相談が多いものを挙げます。どれも一度は踏む種類のものです。

参照を固定していない

下方向にコピーしたときに、動いてはいけない範囲までずれます。上の数行は正しく動くため、気づくのが遅れます。表の最終行まで確認してください。

型が揃っていない

表示が同じでも、型が違えば別の値として扱われます。=ISNUMBER(A2) で確認できます。システムから書き出したデータでは、これが原因のことが多くあります。

空欄と0を区別していない

空欄が未入力を意味するのか0を意味するのかで、表の読み方が変わります。どちらとして扱うかを決めてから数式を書いてください。

範囲の行数が揃っていない

複数の範囲を渡す関数では、行数がずれると結果が狂います。エラーにならず値が返るため、気づきにくい種類の間違いです。

結果を検算していない

Excelでは使えません。共有先の環境を確認してください。別の方法で同じ数字を出して、突き合わせてください。

数式が長くなりすぎている

入れ子が3段を超えると、書いた本人でも読めなくなります。作業列に分けてください。完成後に非表示にすれば見た目は変わりません。

この記事で使っている言葉

説明に出てくる言葉を整理しておきます。意味を取り違えると、手順の途中で迷います。

引数

関数の括弧の中に渡す値のことです。ARRAY_CONSTRAINでは =ARRAY_CONSTRAIN(配列, 行数, 列数) の括弧内が引数にあたります。順番に意味があるため、位置を入れ替えると結果が変わります。

範囲

A2:A100 のように、複数のセルをまとめて指定したものです。行数が揃っていないと、複数の範囲を渡す関数では結果が狂います。

絶対参照と相対参照

絶対参照は $A$2 の形です。コピーしても参照先が変わりません。A2 は相対参照で、コピーした方向に応じてずれます。この使い分けが、結果がずれる原因の大半を占めます。

配列

1つの数式が複数の値を返す形です。返した先のセルが埋まっていると展開できず、エラーになります。

揮発性

関係のない編集でも再計算される性質です。NOW TODAY INDIRECT OFFSET が該当します。多用するとファイル全体が重くなります。

値として貼り付ける

数式ではなく計算結果だけを残す操作です。参照元を消しても壊れなくなり、再計算の対象からも外れます。

作業列

途中の計算結果を置くための列です。長い式を1本書くより、短い式を並べたほうが誤りを見つけられます。完成後に非表示にすれば、見た目は変わりません。

ARRAY_CONSTRAINの応用

基本形が動くようになったら、次はこの形です。実務ではここまで使えると、たいていの要望に応えられます。

抽出結果を10件に絞る

=ARRAY_CONSTRAIN(FILTER(A:B,C:C="済"),10,2)

抽出結果を10件に絞る形です。基本形との違いは、渡している引数だけです。

分解して読む

内側の括弧から順に評価されます。分からない部分だけを抜き出して試すと、原因の位置が特定できます。

使うときの注意

参照する範囲を、自分の表に合わせて置き換えてください。関数名と引数の順番は変えません。

一意の一覧を20件に絞る

=ARRAY_CONSTRAIN(UNIQUE(A2:A100),20,1)

一意の一覧を20件に絞る形です。基本形との違いは、渡している引数だけです。

分解して読む

内側の括弧から順に評価されます。分からない部分だけを抜き出して試すと、原因の位置が特定できます。

使うときの注意

参照する範囲を、自分の表に合わせて置き換えてください。関数名と引数の順番は変えません。

さらに複雑にする前に

入れ子が3段を超えたら、作業列に分けてください。1つの数式にまとめることに価値はありません。後から読める形のほうが、結果的に速く終わります。

応用が必要かどうかの判断

基本形を繰り返し書いて済むなら、応用は不要です。同じ作業が月に何度も発生する場合だけ、仕組みにしてください。

実際にあった相談と、その原因

寄せられる相談を、原因ごとに整理しました。近いものを探してください。

「昨日まで動いていた数式が壊れた」

参照先の表で、列が挿入されたか削除されたかのどちらかです。列番号を直書きした式は、参照先の列が増減した時点で別の意味になります。その場をしのぐなら番号を直し、根本から直すなら位置に依存しない形にします。

「合計が1円合わない」

丸めの位置が揃っていません。表示形式で小数を隠しても、値そのものは丸められません。ROUND を使う位置を、計算のどの段階にするかを決めてください。各行で丸めるか、合計してから丸めるかで結果が変わります。

「一部の行だけ結果がおかしい」

その行のデータだけ型が違うか、余分な空白が入っています。=ISNUMBER(A2) と =LEN(A2) を並べて、正常な行と見比べてください。

「下にコピーすると値が変わる」

参照を固定していません。動いてはいけない範囲に $ を付けてください。上の数行は正しく動くため、気づくのが遅れます。

「共有したら相手の画面でエラーになる」

ARRAY_CONSTRAINや組み合わせている関数が、相手の環境で使えません。#NAME? が出ている場合はこれです。対応範囲の広い書き方に変えるか、値として渡してください。

「重くて開けない」

列全体の指定と、揮発性の関数が原因のことがほとんどです。範囲を区切り、確定した期間は値に変換してください。

数式を使わないという選択

すべてを数式で解決する必要はありません。機能で済むものは、そちらのほうが保守が楽です。

ピボットテーブルで足りる場合

集計の軸が決まっているなら、集計機能のほうが速く、保守も簡単です。数式で組む理由がないか、一度確認してください。

フィルタで足りる場合

一時的に絞り込んで見るだけなら、フィルタ機能で十分です。ただし共有中のファイルでは、他の人の表示にも影響します。そこが問題になる場合だけ、関数で抽出してください。

条件付き書式で足りる場合

色を付けたいだけなら、列を増やす必要はありません。ただし範囲が広いほど負荷になるため、必要な範囲に絞ってください。

入力規則で防げる場合

誤りを後から探すより、入力の段階で防ぐほうが手間がかかりません。選択肢を決められる項目は、プルダウンにしてください。

手作業のほうが早い場合

繰り返さない作業に式を組む必要はありません。繰り返す作業かどうかで判断してください。

それでも数式を使う理由

元データが更新される表では、数式が最も確実です。手作業は、更新のたびに同じ手間がかかり、抜けも起きます。

よく組む形をそのまま貼る

ARRAY_CONSTRAINを実務で使うとき、決まった組み方があります。貼って範囲を直せば動きます。

空欄なら計算しない

=IF($A2="", "", ARRAY_CONSTRAIN(...))

未入力の行に0やエラーが並ぶのを防ぎます。集計表では必ず入れてください。

エラーを空欄にする

=IFERROR(ARRAY_CONSTRAIN(...), "")

配布用の表を整える段階で使います。原因を追っている間は外してください。

エラーに文言を出す

=IFERROR(ARRAY_CONSTRAIN(...), "要確認")

空欄より実務では役に立ちます。後からフィルタで抽出できるためです。

条件で使い分ける

=IF($B2="対象", ARRAY_CONSTRAIN(...), 0)

対象外の行を0にする形です。合計に含めたくない行がある場合に使います。

FILTER と組み合わせる

=FILTER(ARRAY_CONSTRAIN(...))

内側から評価されます。3段以上の入れ子になったら作業列に分けてください。

結果を丸める

=ROUND(ARRAY_CONSTRAIN(...), 0)

小数の誤差を残したまま集計すると、合計が1円ずれます。丸める位置を決めてください。

貼るときの注意

... の部分は、この記事の実例から自分の表に合う形を選んで置き換えてください。参照を固定するかどうかは、コピーする方向で決まります。下方向なら行、右方向なら列を固定するかを先に判断してください。

ARRAY_CONSTRAINを身につける順序

一度に全部を覚える必要はありません。使う順に覚えれば足ります。

まず、基本形1つだけ

=ARRAY_CONSTRAIN(SORT(A2:B100,2,FALSE),5,2)

上位5件だけ出す形です。まずこれだけを覚えてください。実務で使う場面の大半はこの形で足ります。

次に、参照の固定

どの参照が動いてよいのかを決めるのが、固定の判断です。ここを理解すると、コピーで結果が狂うことがなくなります。

次に、エラーの扱い

=IFERROR(ARRAY_CONSTRAIN(...),"") の形です。配布する表では必要になります。ただし原因を追う段階では外してください。

次に、組み合わせ

FILTER など、目的の近い関数と組み合わせる形です。ここまで来ると、たいていの要望に応えられます。

最後に、代替手段

ARRAY_CONSTRAIN以外の書き方も知っておくと、環境が変わったときに困りません。共有先で使えない関数があるとき、代わりの書き方を出せるようになります。

覚えなくてよいこと

すべての引数を暗記する必要はありません。書き始めれば候補が出ます。覚えるべきなのは、何ができる関数かという一点だけです。

ARRAY_CONSTRAINと似た関数の違い

名前が近い関数は、目的が微妙に違います。取り違えると結果が変わります。

ARRAY_CONSTRAIN と FILTER

ARRAY_CONSTRAINは配列を指定した大きさに切り詰める関数です。FILTERとは、扱えるデータの形か、返す値の種類が違います。

どちらでも書ける場面では、短く書けるほうを選んでください。

ARRAY_CONSTRAIN と SORT

ARRAY_CONSTRAINは配列を指定した大きさに切り詰める関数です。SORTとは、扱えるデータの形か、返す値の種類が違います。

どちらでも書ける場面では、短く書けるほうを選んでください。

ARRAY_CONSTRAIN と UNIQUE

ARRAY_CONSTRAINは配列を指定した大きさに切り詰める関数です。UNIQUEとは、扱えるデータの形か、返す値の種類が違います。

どちらでも書ける場面では、短く書けるほうを選んでください。

判断の基準

  1. 出したい結果を一文で書く
  2. 条件の数を数える
  3. 返したい値が1つか複数かを決める
  4. 共有先の環境を確認する
  5. 短く書けるほうを選ぶ

この順で考えれば、関数は1つに絞れます。先に条件を決めないまま探すと、選択肢が絞れません。

数式の前に、データを整える

ARRAY_CONSTRAINが意図通りに動かない原因の多くは、数式ではなく元データにあります。書き直す前に、渡しているデータを確認してください。

型を揃える

=ISNUMBER(A2)

数値として入っているかを判定します。見た目が数字でも文字列なら FALSE になります。システムから書き出したデータでは、これが原因のことが多くあります。

前後の空白を落とす

=TRIM(A2)

前後の空白と、語間の連続した空白を1つに詰めます。見た目では判別できないため、検索や集計が合わない原因になります。

全角と半角を揃える

=ASC(A2)

全角の英数字と記号を半角にします。逆方向は JIS です。手入力が混じる列では、この差が原因になりがちです。

改行を取り除く

=SUBSTITUTE(A2,CHAR(10),"")

セル内改行はコピー時に紛れ込みます。CHAR(10) が改行文字です。

文字数を比べて確認する

=LEN(A2)&" / "&LEN(B2)

見た目が同じなのに一致しないとき、まずこれを見ます。数が違えば、空白か不可視文字が入っています。

掃除は作業列にまとめる

数式の中に掃除を書き込むと、長くなって読めなくなります。掃除済みの値を作業列に出し、そこを参照する形にしてください。元データを直接書き換えないので、後から検証できます。

数式の読み解き方

他人の書いた数式を引き継ぐ場面は多くあります。読む順番を決めておくと、長い式でも追えます。

内側から読む

入れ子になった数式は、いちばん内側の括弧から評価されます。外側から読もうとすると、途中で分からなくなります。

引数の区切りで分ける

カンマで区切られた単位が引数です。括弧の対応を見ながら、どこまでが1つの引数かを確認してください。

一部だけを別セルで試す

長い数式の一部を切り出して、別のセルに貼って結果を見てください。どこまでが正しく動いているかが分かります。

この記事の例で確認する

=ARRAY_CONSTRAIN(UNIQUE(A2:A100),20,1)

一意の一覧を20件に絞る形です。内側から順に、何が返っているかを確認してください。一度分解して読めば、似た形の数式はすべて読めるようになります。

分からない部分は残しておく

全部を理解してから触ろうとすると、いつまでも進みません。変える必要のある部分だけを特定して、そこだけ直してください。触っていない部分は、動いている限り放っておいて構いません。

エラーが出たときの読み方

ARRAY_CONSTRAINでエラーが出たとき、記号ごとに原因が決まっています。端から直すより、記号を見て該当する項目だけを確認してください。

記号意味最初に見るところ
#N/A検索した値が見つからない空白・全角半角・型。原因はほぼこの3つのどれかです
#REF!参照先が消えている参照していた行や列を削除していないかを確認してください
#VALUE!引数の型が合っていない数値を渡すべきところに文字列が入っていないかを確認してください
#DIV/0!0で割っている割る側が0または空欄になっていないかを確認してください
#NAME?関数名が認識されていない綴りの誤りか、その環境で使えない関数かを確認してください
#NUM!数値として扱えない指定した順位や桁数が範囲を超えていないかを確認してください

#N/A が出た場合

検索した値が見つからない状態です。空白・全角半角・型。原因はほぼこの3つのどれかです。

ARRAY_CONSTRAINに限らず起きるエラーですが、原因の場所は数式そのものではなく、参照先のデータにあることがほとんどです。

#REF! が出た場合

参照先が消えている状態です。参照していた行や列を削除していないかを確認してください。

ARRAY_CONSTRAINに限らず起きるエラーですが、原因の場所は数式そのものではなく、参照先のデータにあることがほとんどです。

#VALUE! が出た場合

引数の型が合っていない状態です。数値を渡すべきところに文字列が入っていないかを確認してください。

ARRAY_CONSTRAINに限らず起きるエラーですが、原因の場所は数式そのものではなく、参照先のデータにあることがほとんどです。

#DIV/0! が出た場合

0で割っている状態です。割る側が0または空欄になっていないかを確認してください。

ARRAY_CONSTRAINに限らず起きるエラーですが、原因の場所は数式そのものではなく、参照先のデータにあることがほとんどです。

エラーを隠すべきかどうか

IFERROR は表示を消すだけで、原因はそのまま残ります。原因を追っている段階では外してください。配布用の表に仕上げる段階になってから包むのが正しい順序です。

組み合わせて使う

ARRAY_CONSTRAINは単体でも使えますが、他の関数と組み合わせると実務で使える形になります。

FILTER と組み合わせる

ARRAY_CONSTRAINの結果をFILTERに渡す、あるいはその逆の形です。1つの数式にまとめられますが、長くなると後から読めません。3段以上の入れ子になったら、作業列に分けることを検討してください。

IFERROR と組み合わせる

=IFERROR(ARRAY_CONSTRAIN(...), "")

エラーの表示を消したいときの形です。ただし、原因を追っている段階では外してください。隠したまま進めると、間違った値のまま気づけません。

IF と組み合わせる

=IF(A2="", "", ARRAY_CONSTRAIN(...))

未入力の行で計算させない形です。空欄に0やエラーが並ぶのを防げます。集計表では、この一行があるかないかで見た目が大きく変わります。

作業列に分ける

1つの数式にまとめるより、途中の結果を作業列に出したほうが、間違いを見つけやすくなります。完成後に列を非表示にすれば見た目も崩れません。

引き継ぐ前提の表なら、読みやすさを優先してください。

名前付き範囲を使う

参照する範囲に名前を付けると、数式が読みやすくなります。参照先が増減しても、名前の定義を直すだけで済みます。

ExcelとGoogleスプレッドシートの違い

ARRAY_CONSTRAINはGoogleスプレッドシートにしかありません。共有先の環境が違う場合は、先に確認してください。

使える関数が違う

配列を返す FILTER UNIQUE SORT は、Excelでは使えない版があります。古い環境で開くと #NAME? になります。社外に渡すファイルでは、この点だけで使う関数が変わります。

配列の扱いが違う

スプレッドシートでは ARRAYFORMULA を使って一気に展開するのが定石です。Excelでは自動的に広がる仕様になっています。同じ結果を出す書き方が違うため、そのまま移すと動きません。

引数の区切りが違うことがある

地域設定によっては、引数の区切りがセミコロンになります。コピーした数式が動かない場合、ここを疑ってください。

日付の基準が違う

日付を数値で持つ点は共通ですが、起点の日が違う設定が存在します。ファイルをまたいで日付を計算するときは注意してください。

どちらで作るか

共有先が決まっていないなら、対応範囲の広い書き方を選んでください。後から書き換えるより、最初から限定するほうが手戻りが少なくなります。

数が増えて重くなったとき

数式が数千行に増えると、再計算に時間がかかるようになります。効果の大きい順に挙げます。

範囲を列全体で指定しない

A:A は書くのが楽ですが、空行まで対象に含めます。$A$2:$A$5000 のように行を区切ってください。行数が多いほど差が出ます。

同じ計算を繰り返さない

同じ引数でARRAY_CONSTRAINを何度も書いているなら、作業列に一度だけ出して、他はその列を参照させてください。

揮発性の関数を減らす

NOW TODAY INDIRECT OFFSET は、関係のない編集でも再計算されます。多用すると、ファイル全体が重くなります。

確定した部分は値にする

締めた期間の集計は、値貼り付けにしてください。数式が残っている限り、再計算の対象になり続けます。

条件付き書式を減らす

数式を使った条件付き書式は、範囲が広いほど負荷になります。必要な範囲だけに絞ってください。

引き継ぐときに書いておくこと

数式は動いていても、意図は残りません。渡す前に、次の点をシート内にメモしてください。3分で終わります。

何を出している数式か

ARRAY_CONSTRAINで配列を指定した大きさに切り詰めるという意図を、一行で書いてください。読めば分かると思っても、数か月後の自分には分かりません。

どの表を参照しているか

参照先のシート名と、その表の更新担当。参照先が別ファイルなら、その場所も書いてください。

該当しないときの扱い

空欄にしているのか、文言を出しているのか、エラーのまま残しているのか。書いていないと、受け取った側は空欄をデータなしと読みます。

触ってはいけない場所

Excelでは使えません。共有先の環境を確認してください。この点を書いておかないと、引き継いだ人が同じところでつまずきます。

使った関数の対応環境

新しい関数を使っている場合、古い環境では開けません。共有の範囲が広がる可能性があるなら、必ず明記してください。

書いたあとの確認

ARRAY_CONSTRAINを新しく書いたら、次を順に確認してください。数分で終わります。

参照を固定したか

下にコピーする式では、固定すべき参照に $ が付いているかを見ます。上の数行だけ見て判断しないでください。範囲のずれは下のほうで表面化します。

一番下の行まで正しいか

最終行までスクロールして、結果を確認してください。途中から値が変わっていないかを見ます。

別の方法で検算したか

同じ数字を別の関数でも出して、突き合わせてください。ARRAY_CONSTRAINの結果だけを見ても、正しいかどうかは判断できません。

空欄とゼロを区別したか

空欄が未入力を意味するのか0を意味するのかで、表の読み方が変わります。どちらとして扱うかを決めてから書いてください。

エラーの扱いを決めたか

隠すのか、残すのか。用途に合っているかを確認してください。

他の人が読めるか

入れ子が3段を超えていないか。超えているなら、作業列に分けることを検討してください。

ARRAY_CONSTRAINについてよくある質問

Q. ARRAY_CONSTRAINが使えません

その環境で対応していない可能性があります。#NAME? が出ている場合は、綴りの誤りか、環境が未対応かのどちらかです。

Q. 結果が0になります

参照先が空欄か、数値として認識されていない可能性があります。ISNUMBER で型を確認してください。

Q. 下にコピーすると結果が変わります

参照を固定していません。動いてはいけない部分に $ を付けてください。

Q. エラーを消したいのですが

=IFERROR(ARRAY_CONSTRAIN(...),"") で包めます。ただし原因を追っている段階では外してください。

Q. ARRAY_CONSTRAINとFILTERはどちらを使うべきですか

やりたいことで決まります。出したい結果を一文で書いてから選んでください。

Q. Excelでも同じように使えますか

関数自体は使えますが、組み合わせる関数に差があります。共有先の環境を先に確認してください。

Q. 重くて開けません

列全体の指定をやめ、確定した期間は値に変換してください。この2つで大半が改善します。

Q. 引数を省略できますか

省略できる引数と、できない引数があります。省略すると既定の動作になり、意図と違う結果になることがあります。

Q. 計算結果を固定したいのですが

値として貼り付けてください。参照元を消しても壊れなくなります。

Q. 他の関数も見たいのですが

→ 全関数の一覧 から探せます。

「配列・抽出」カテゴリの中での位置づけ

このサイトは関数をカテゴリで整理しています。ARRAY_CONSTRAINは「配列・抽出」に含まれ、同じカテゴリには現在8本の記事があります。

関数記事
FILTERFILTER関数の使い方
QUERYQUERY関数の使い方
ARRAYFORMULAARRAYFORMULA関数の使い方
SORTSORT関数の使い方
UNIQUEUNIQUE関数の使い方
FLATTENFLATTEN関数の使い方
TRANSPOSETRANSPOSE関数の使い方
SEQUENCESEQUENCE関数の使い方

カテゴリで探す理由

関数名を知っているなら検索で足ります。何をしたいかだけ分かっている状態なら、カテゴリ経由で探してください。

このカテゴリの関数に共通すること

「配列・抽出」の関数は、扱うデータの形が近いため、つまずく場所も似ています。1つで理解した内容は、同じカテゴリの他の関数にもそのまま使えます。

迷ったときは

→ 全関数の一覧 に目的別の索引があります。