ニュース

「Excel」40年の常識“1セル=1つの値”を打ち破る新機能、対応する関数も4種導入へ

セルに複数の値を入れられる「リスト」、「セル内の配列」、「入れ子の配列」

Microsoft、「Microsoft Excel」の新機能を発表

 米Microsoftは9月24日(現地時間)、「Microsoft Excel」の新機能を発表した。従来の「1セル=1つの値」という前提を覆すもので、「Excel」の40年の歴史のなかでも大きな転換となる機能と言える。

 発表によると、今後の「Excel」では1つのセルで以下の3つのデータタイプを扱えるようになる。

  • Lists(リスト):1つのセルの中に複数の値を格納(例:apple, banana, pear)。プロジェクト担当者、タグ、拠点などを1セルで管理できる。単なるカンマ区切り文字列と異なり、各要素単位でフィルターや分析が可能
  • Arrays in Cells(セル内配列):スピル配列の結果を複数セルへ展開せず、1セル内に保持(数式をさらに波かっこで囲む)。数式の結果が複数値でも、関連データをまとめて保持できる。もちろん計算や分析にも利用可能
  • Nested Arrays(入れ子配列):配列の中にさらに配列を持てる(={{1,2,3};{4,5,6}})。「作業ストリームごとのマイルストーン」のような階層構造を保持可能。複雑なデータを自然な形で表現できる
「1セル=1つの値」の常識を覆す、新しいデータタイプが3つ導入

 単なるカンマ区切り文字列と異なり、リストとしてデータが“構造化”されることによるメリットは、フィルタリングや集計、抽出といった処理が簡単になることだ。たとえば、以下のようなデータがあった場合――

タスク担当者
開発田中,佐藤,鈴木

 これまでは「佐藤が担当する案件」といった条件でデータをフィルタリングするのが難しかった。しかし、構造化データ(この場合はリスト)であれば容易に可能。これまでは別にテーブルとして持つ必要があったマスタ管理などの処理もシンプルになる。つまり、データベースのようなデータ表現力をワークシートに持たせることで、とくに複雑なリスト管理やプロジェクト管理のシート設計が大幅に簡素化されるわけだ。

[Insert]タブの[List]でリストを作成し、「apple, banana, pear」と入力したところ。セル内のアイコンをクリックすると個々の値が表示される

 また、スピルとの相性も抜群だ。値を単一のセルにまとめるか、複数セルに展開(スピル)するかどうかを選べるようになるため、レイアウトが崩れやすい・テーブル内で扱いにくい・他データと組み合わせづらいといったスピルにありがちな問題が解消される。

 加えて、これらの新しいデータ構造を活用するための新関数が導入される。

  • FLATTEN(array, [pad_value], [levels]):入れ子を1段階以上取り除き、入れ子の配列を単純化する
  • HAS(array, value):arrayのどこかにvalueがあればTRUE、なければFALSEを返す
  • HASANY(array, values):valuesのいずれかがarrayにあればTRUE、なければFALSEを返す
  • HASALL(array, values):valuesのすべてがarrayにあればTRUE、そうでなければFALSEを返す

 なお、入れ子の配列を含む計算の多くには「互換性バージョン 3」が必要。「互換性バージョン」はブックごとの設定で、[数式]-[計算方法の設定]-[互換性バージョン]から変更できる(現行の推奨は「互換性バージョン 2」)。

[数式]-[計算方法の設定]-[互換性バージョン]からバージョンの変更を

 展開範囲は以下の通り。まずは「Microsoft 365 Insider」へ参加するテスターを対象に、Betaチャネルで展開される。

  • Windows:バージョン 2610(Build 20520.20000)およびそれ以降
  • Mac:バージョン 16.114(Build 26092111)およびそれ以降

 品質と性能を監視しながら段階的に展開されるため、条件を満たしていてもすぐに使えるとは限らない点には注意。

 また、現時点での既知の問題・制限として以下が案内されている点にも注意。まだプレビュー段階の機能なので、一般提供までは重要なブックで利用しないようにしたい。

  • 条件付き書式は、数式を使わない限り配列の中身を見ない
  • データの入力規則で、リストや配列をドロップダウンの項目として使えない
  • グラフは配列をデータポイントに展開しない
  • ピボットテーブルは配列の値をソースデータとして読み込まない
  • 「Power Query」は配列を値に持つ列を読み込めず、出力もできない
  • 検索と置換で、リストや配列の項目を置換できない