Array Expansion Error: Missing ARRAYFORMULA wrapper for CSE arrays の原因と解決策
最終更新日: 2026-08-27
30秒でわかる原因と解決策
原因: Googleスプレッドシートなどで、複数の値を返す配列数式(CSE配列)を入力した際、展開先のセルが不足しているか、自動展開を有効にする
ARRAYFORMULAラッパーが省略されているため。 解決策: 数式の先頭にARRAYFORMULA()関数を追加し、結果を展開する十分なスペースを確保する。
修正コード(Before / After)
❌ エラーが発生するコード
=IF(A1:A10<>"", B1:B10 * C1:C10, "")
⭕ 修正後の推奨コード
=ARRAYFORMULA(IF(A1:A10<>"", B1:B10 * C1:C10, ""))
よくある発生パターンと解説
なぜこのエラーが発生するのか?
GoogleスプレッドシートやExcelなどの表計算ソフトでは、1つのセルに数式を入力して複数の結果(配列)を一度に出力する操作(配列数式)を行うことがあります。
従来、これらは Ctrl + Shift + Enter (CSE) を押して配列数式として明示的に確定させる必要がありましたが、近年のGoogleスプレッドシートでは動的配列(Dynamic Arrays)がサポートされています。しかし、条件分岐や特定の関数(IF 関数など)の範囲指定において、スプレッドシートが自動的に配列全体を処理できないケースがあります。
このとき、数式の結果が単一のセルに収まらず、隣接するセルへ「拡張(Expansion)」する必要があるにもかかわらず、その指示(ARRAYFORMULA)が抜けている場合に “Missing ARRAYFORMULA wrapper for CSE arrays” エラーが発生します。
具体的な解決手順
- エラーが発生しているセルを選択します。
- 数式バーを確認し、数式の最も外側を
ARRAYFORMULA(...)で囲みます。 - Enterキーで確定します(必要に応じて展開先のセルに値が自動的に広がります)。
よくある質問 (FAQ)
Q1: ARRAYFORMULA を追加したのに「#REF!」エラーが出ます。
A: 配列が展開される予定のセル(右側や下側のセル)にすでに別のデータや文字が入力されている可能性があります。「#REF!」エラーを解消するには、展開先のエラー範囲を空っぽ(空白)にしてください。
Q2: 従来の Ctrl + Shift + Enter はもう必要ありませんか?
A: Googleスプレッドシートにおいては、多くのケースで ARRAYFORMULA 関数を使用するか、動的配列機能によって自動的に処理されるため、手動で Ctrl + Shift + Enter を押す必要性は薄れています。ただし、関数内で配列処理を明示するために ARRAYFORMULA の記述は依然として重要です。