2018 年 9 月、Excel for Microsoft 365 用の動的配列数式をリリースしました。 動的配列と従来の Ctrl+Shift+Enter (CSE) 数式の違いを以下に説明します。
動的配列数式:
数式が入力されたセル境界の外側に "スピル" する可能性があります。 次の例は、D1 の RANDARRAY 関数 を示しています。これは、D1:F5、つまり 5 行 x 3 列にわたってスピルします。 動的配列数式は技術的にはセル D1 にのみ存在しますが、従来の CSE 数式では、数式を範囲全体に入力する必要があります。
- ソース範囲にデータが追加または削除されると、自動的にサイズ変更されます。 CSE 配列数式は、戻り領域が小さすぎる場合は切り捨てられ、大きすぎる場合は #N/A が返されます。
- 1x1 のコンテキストで計算します。 たとえば、 RAND 関数 は 1 つの結果を返すため、複数の乱数をグリッドに返す場合は、 RANDARRAY 関数を使用できます。 ROW 関数と COLUMN 関数は、ソース セルの行と列を返します。 SEQUENCE(ROW()) を使用すると、従来の配列数式で ROW の古い動作を再現できます。
- 1 つ以上の結果を返す新しい数式は、自動的にスピルします。 Ctrl+Shift+Enter キーを押す必要はありません。
- 互換性の理由から、CSE 配列数式は保持されます。 今後は、代わりに動的配列数式を使用する必要があります。
- 従来の CSE 配列数式のセルが相互に依存している場合、Excel はそれぞれを配列としてではなく個別に計算しようとします。 この動作は "CSE 解散" と呼ばれ、特定の状況下では、この方法で計算された数式は一貫性のない結果を生成する可能性があります。 一貫性のない結果が生じる可能性を避けるために、CSE の内訳に依存するのではなく、個別の数式を使用することをお勧めします。 動的配列数式は分割されません。 代わりに、循環参照を報告し、対処できるようにします。
- ソース セルを変更することで簡単に変更できますが、CSE 配列数式は範囲全体を同時に編集する必要があります。
- アクティブな CSE 配列数式範囲内での列と行の挿入/削除は禁止されています。 まず、邪魔になる既存の配列数式をすべて削除する必要があります。
補足説明
Excel 技術コミュニティの専門家にいつでも質問するか、コミュニティでサポートを受けることができます。