この記事で分かること

  • Ctrl+Shift+Enterで確定する旧来の配列数式(CSE)と、動的配列(スピル)の仕組みの違い
  • 整数設例で、同じ条件集計をCSE配列数式とFILTER関数の両方で検算
  • データが増減したときの挙動の違い(固定サイズ vs 自動拡張)
  • Excelバージョンが異なるメンバー間でファイルを共有する際の互換性リスク

30秒で分かる定義

レガシー配列数式(CSE)とは、数式の入力後にCtrl+Shift+Enterキーを押して確定する旧来の配列数式のことで、確定すると数式が中括弧{}で自動的に囲まれます。読み方:しーえすいー(Ctrl・Shift・Enterの頭文字)。これに対しExcel 2021/Microsoft 365で導入された動的配列(スピル)は、通常のEnterキーで確定するだけで、結果が複数セルにわたる場合は自動的に隣接するセルへあふれ出す(スピルする)方式です。両者は似た計算を実現できますが、入力方法・挙動・互換性のいずれも異なります。

なぜ実務で重要なのか

財務モデリング全般では、複数条件の集計や配列演算を行う場面で、モデルを作った人と開くバージョンが異なると挙動が変わるという互換性の問題に直面します。PE・IBのディールチームでは、複数メンバーが異なるOfficeライセンス(永続版・サブスクリプション版)で同じモデルを共有することが珍しくなく、新しい関数(FILTER・UNIQUE・SORT等)を使ったスピル数式が古いExcelでは動かないという実務上のトラブルが起こり得ます。

計算式(または仕組み)

レガシー配列(Ctrl+Shift+Enterで確定):{=SUM(IF(A2:A6=”東京”,B2:B6))}
動的配列(通常のEnterで確定・自動スピル):=SUM(FILTER(B2:B6,A2:A6=”東京”))

レガシー配列数式は、あらかじめ結果が収まる範囲を選択してからCtrl+Shift+Enterで確定する必要があり、選択範囲が結果より小さいと値が途中で切れ、大きいと余ったセルに#N/Aが表示されます。動的配列は範囲を事前に選択する必要がなく、結果のサイズに応じて自動的に必要なセル数だけスピルします。

整数設例で確認する

設例(架空数値)。A2:A6に地域「東京・大阪・東京・名古屋・東京」、B2:B6に売上高「100・80・150・60・120」(百万円)が入力されています。東京の売上合計を求めると、100+150+120=370百万円です。

レガシー配列数式{=SUM(IF(A2:A6="東京",B2:B6))}、動的配列を使った=SUM(FILTER(B2:B6,A2:A6="東京"))のいずれも370を返し、結果は一致します(検算OK)。ここで、D2セルに=FILTER(B2:B6,A2:A6="東京")とだけ入力すると、東京に該当する3件の値100・150・120がD2:D4の3セルへ自動的にスピルします。後日データが1行追加され東京の該当件数が4件になった場合、動的配列は自動的にD2:D5まで拡張されますが、レガシー配列数式は最初に選択した固定サイズの範囲のままのため、追加分を反映するには範囲を選び直してCtrl+Shift+Enterで再確定する手間が必要です。

案件プロセス上の位置付け

複数メンバーが持ち回りでモデルを更新するディールプロセスでは、あるメンバーがサブスクリプション版のExcelでスピル数式を組み込み、別のメンバーが永続版の古いExcelでファイルを開くと、FILTER・UNIQUE・SORT等の関数が認識されず#NAME?エラーになることがあります。案件チーム全員のExcelバージョンを事前に確認し、共有前提のモデルでは互換性の高いレガシー方式や代替関数(SUMIFS等)を選ぶ判断が必要になります。

財務モデル・Excelでの使い方

  • 単純な条件集計であれば、CSE配列数式ではなくSUMIFS・COUNTIFS等の非配列関数で代替できないかをまず検討する(配列数式自体が不要になり互換性問題も解消する)
  • スピルを使う場合は、こぼれた範囲を参照する際に「#」演算子(例:=SUM(D2#))を使うと、範囲が変化しても追随して集計できる
  • 共有前提のモデルでは、ファイルの対象バージョンをモデルのバージョン管理のルールに明記し、動的配列関数の使用可否を事前に取り決めておく
  • 古いレガシー配列数式が残っているモデルを引き継いだ場合、無理に動的配列へ書き換えず、まず配列である旨(中括弧の存在)を認識することが優先
  • モデルを他のメンバーへ引き継ぐ際の確認事項はモデルレビューと引き継ぎの作法にも共通する

この用語をExcelで「組める」状態にする

同じ条件集計をレガシー配列数式と動的配列の両方で実装し、共有ファイルでの互換性リスクを見分けられるようになる。

Excel実務シリーズの教材で実装する →

実務家が確認するポイントとよくある誤解

誤解1:「中括弧{}を数式バーに直接タイプすれば配列数式になる」→ 正しくは、中括弧は必ずCtrl+Shift+Enterで確定した結果としてExcelが自動表示するもので、手入力すると単なる文字列として扱われエラーになります。

誤解2:「動的配列は常にレガシー配列の上位互換」→ 正しくは、古いExcelバージョンとの共有が前提のファイルでは、動的配列関数自体が使えないため、あえてレガシー方式や非配列の代替関数を選ぶ場面があります。

確認ポイント:受け取ったモデルで#NAME?エラーが出た場合、動的配列関数を使っていて開いているExcelが対応していない可能性をまず疑います。

日本実務での扱い

日本企業では、Microsoft 365(サブスクリプション版)への移行が進む一方、情報システム部門の管理方針により永続ライセンス版のOfficeを継続利用する部署も多く残っており、同一社内でもExcelのバージョンが統一されていないケースが珍しくありません(2026年8月時点)。M&Aやファンドの案件では社外の複数関係者(FA・法律事務所・買い手企業等)ともファイルを共有するため、動的配列関数への依存度が高いモデルほど、送付前に受け手側の対応バージョンを確認することが実務上の注意点になります。

面接・モデルテストで問われるポイント

Q:共有先のPCでFILTER関数が#NAME?エラーになりました。原因と対処法を説明してください。
「最も可能性が高い原因は、共有先のExcelが動的配列(スピル)に対応していない旧バージョンであることです。対処法としては、FILTER関数をSUMIFS等の非配列関数や、Ctrl+Shift+Enterで確定するレガシー配列数式に書き直すか、共有前提のモデルでは最初から動的配列関数の使用を避ける設計にします。」

深掘りでは、「案件チームのExcelバージョンをどう事前に把握するか」が問われます。

よくある質問(FAQ)

Q. 動的配列に対応したExcelで開いた古いCSE配列数式は自動的にスピル形式に変換されますか?
A. 自動変換はされません。既存のCSE配列数式は中括弧付きのまま従来どおり動作し続けます。新しく組む数式でのみ、動的配列(スピル)の挙動が使えます。

Q. スピル範囲に他のデータが入っていると何が起きますか?
A. スピルしようとする範囲に既存のデータがあると、数式は結果を表示できずに#SPILL!エラーを返します。スピル先を確保するため、周辺セルを空けておく必要があります。

出典・参考(2026-08確認)

  • 本記事はExcelの一般機能に関する解説であり、法令・会計基準に基づく出典は該当しません(Microsoft Excel公式ヘルプ「配列数式のガイドラインおよび例」「動的配列とスピル配列の動作」を参考にしています)。

※本記事は教育目的の一般的な解説であり、法務・税務・投資助言ではありません。設例は理解のための架空数値です。

共有: