プロジェクトの担当者一覧を、1つのセルに「田中, 佐藤, 鈴木」とカンマ区切りで書いたことはないだろうか。アンケートの複数回答を「13時, 13時半, 14時」とまとめて記録したこともあるかもしれない。あとから「佐藤が関わっている行だけ」を絞り込もうとすると、フィルタは文字列全体が一致するかどうかしか見てくれず、個別の名前では引っかからない。
Microsoftは2026年9月24日、この「1つのセルには1つの値しか入らない」という40年来の前提を変える機能を発表した。対象はExcel for WindowsとMacのBeta Channelで、1つのセルの中に複数の値を、個別に扱える形のまま持てるようになった。
値を並べて持てるだけなのか、それとも計算式が返す結果もまとめて持てるのか。そこを確かめていく。
リストで複数の値を1セルに
カンマ区切りで詰め込んだ複数の値を、テキストのまま扱わずに済む方法はあるのか。公式ブログによると、答えは「リスト」という新しいデータの持ち方だ。操作は次のとおりになる。
- セルを選んで「挿入 > リスト」を選ぶか、Ctrl+Jを押す
- 項目をカンマまたはセミコロン(地域の設定による)区切りで入力するか、貼り付ける
- セルの中のアイコンを選ぶと個々の値を確認できる
- セルをダブルクリックするかF2キーを押せば、ほかの値と同じように項目を追加・削除・編集できる
ここが従来のカンマ区切りテキストと違う点になる。従来はフィルタで文字列全体が一致する行しか選べなかったが、リストなら個別の項目でフィルタできる。公式ブログが挙げる例は、プロジェクトの担当者「Carlos, Henrietta, Jacob」や、アンケートの回答時間「2:00 PM; 2:30 PM; 3:00 PM」だ。まさに冒頭で名指しした場面と同じで、1セルにまとめたまま、担当者ごと・時間ごとに絞り込めるようになる。セルを=B2のように参照すると、値は複数セルへ展開(スピル)される。
リストは値を並べて持つだけの機能だ。では、計算式が返す結果——本来なら複数セルに散らばる値——も、同じように1セルへ持たせられるのだろうか。
波かっこ二重でセル内配列に
計算式の結果も、リストのように1セルへまとめられるのか。ここに関わるのが、Excelの動的配列という既存の仕組みだ。1つの数式が複数の値を返すとき、Excelはその値を周囲の空いたセルへ自動的に展開する。これを「スピルする」と呼ぶ。たとえばB2に=TEXTSPLIT("a,b,c",",")と入力すると、結果の”a” “b” “c”はB2・C2・D2の3マスに散らばる。
同じ数式を波かっこでもう1段階囲み、={TEXTSPLIT("a,b,c",",")}と書くと、結果は散らばらずB2という1つのセルだけにまとまる。自分はここで一度止まった。波かっこを二重にするだけで、なぜ散らばる・まとまるが切り替わるのか、最初はピンと来なかった。公式ブログによると、波かっこはもともとExcelで「値の集まり(配列)」を表す記号だという。外側にもう1組足すことは、その集まりをまるごと1つの値として包み直す操作にあたる。包み直された1つの値は、複数セルへ展開する理由がなくなるので、B2という1マスに収まる。
かっこを重ねるだけで、結果が散らばるかまとまるかが切り替わる。これがセル内配列の仕組みだ。1つのセルにまとまるなら、行ごとに項目数が違うデータを、1つの表にまとめることもできるのだろうか。
入れ子配列で表がまとまる
行ごとに項目数が違うデータを、1つの表にまとめられるのか。公式ブログによると、配列は配列の中にも入れられる(入れ子配列)。たとえば={{1,2,3};{4,5,6}}のように書ける。従来は、配列の中に配列を返す数式を書くと結果が途中で切り詰められるか、#CALC!エラーになっていたが、今回対応した数式は入れ子のままの結果を返す。
公式ブログが挙げる例では、TEXTSPLIT(B4:B9, ...)という数式の挙動が変わった。入れ子配列に対応する前は各行の最初の項目しか返さなかったが、対応後は行ごとに1つの配列として、すべての項目が展開されるようになった。
分かりやすい活用例が、公式ブログが挙げるランニング記録の表だ。ランごとに、1kmごとの区間タイムを1つのセルにまとめて持つ。ランによって走った距離が違えば区間の数も変わるが、入れ子配列なら行の長さが揃っていなくても1つの表に収まる。合計距離・平均ペース・最速区間といった集計も、同じ表の中で計算できる。
配列を1セルにまとめられるようになった一方、まとめた配列から個別の値を取り出したり、特定の値が含まれているかを調べたりする方法が要る。
配列から値を取り出す関数
まとめた配列から個別の値を取り出したり、含まれているかを調べたりするにはどうするのか。Microsoftはこのために4つの新関数を追加した。
FLATTEN(array, [pad_value], [levels]): 入れ子配列の階層を1段階以上取り除き、個々の値をグリッドへ展開する。公式ブログの例では、行ごとに項目数が違う入れ子配列をFLATTENに通し、pad_valueに空文字("")を指定することで、項目が少ない行の余ったマスを空欄で埋めているHAS(array, value): 指定した値が配列のどこかにあればTRUE、なければFALSEを返すHASANY(array, values): 指定した複数の値のうち、いずれかが配列に含まれていればTRUEHASALL(array, values): 指定した複数の値がすべて配列に含まれていればTRUE
公式ブログの例は、映画のタグ付けだ。ジャンルやキャストを1セルの配列で持つ表に対し、この3つのHAS系関数で「アクションというタグを含む映画だけ」のような条件判定ができる。
ここまでの機能は、今日から誰でも使えるわけではない。自分のExcelで試すには何が要るのか。
今すぐ試せるのか
自分のExcelでいつから使えるのか。公式ブログによると、これらはMicrosoft 365 InsiderのBeta Channelユーザー向けに展開が始まったプレビュー機能だ。対象はWindowsがバージョン2610(ビルド20520.20000)以降、Macがバージョン16.114(ビルド26092111)以降になる。入れ子配列を使う計算の多くには「互換性バージョン3」への切り替えも必要で、ブックごとに「数式 > 計算方法の設定」から変更する。既存の数式が互換性バージョン3で異なる結果を返す場合もあるため、挙動が想定と違えばバージョン1か2に戻せる。
Microsoft自身、この機能がまだプレビュー段階であり、フィードバックをもとに一般提供までに挙動が変わる可能性があるとして、重要なブックでは使わないよう勧めている。あわせて公式ブログは、Beta Channelの現時点でまだ対応していない項目を6つ挙げている。
| できないこと | 内容 |
|---|---|
| 条件付き書式 | 数式を使わない限り、配列の中身を検査しない |
| データの入力規則 | リストや配列をドロップダウンの選択肢にできない |
| グラフ | 配列をデータ点として展開しない |
| ピボットテーブル | 配列の値をソースデータとして読み取れない |
| Power Query | 配列を持つ列を読み込み・出力できない |
| 検索と置換 | リストや配列の項目を置換できない |
この表からは、リストや配列がまだ「入力と数式の中だけで完結する機能」で、グラフやピボットテーブルといった集計・可視化の道具にはまだつながっていないことが分かる。担当者一覧を絞り込む用途にはすぐ使えても、そこから先の集計を配列のまま進めるのは、まだ手が届かない。
まとめ
Excelに「リスト」「セル内配列」「入れ子配列」という3つの仕組みが加わり、1つのセルに複数の値を、個別に扱える形のまま持てるようになった。リストはカンマ区切りテキストの正式な置き換えで、個別の項目でフィルタできる。セル内配列は、数式を波かっこでもう1段階囲むことで、本来複数セルに散らばる結果を1セルへ閉じ込める。入れ子配列は、その配列の中にさらに配列を持たせ、行ごとに長さの違うデータも1つの表にまとめる。取り出す・探すための道具として、FLATTEN・HAS・HASANY・HASALLの4関数も加わった。
現時点ではMicrosoft 365 InsiderのBeta Channel限定のプレビュー機能で、条件付き書式やピボットテーブルなど届いていない先もある。試したい場合は、Microsoft 365のアカウント設定からBeta Channelへの参加を確認するところから始まる。
コメント
気づきや感想をどうぞ記事への補足や、読んで考えたことをお寄せください。個人情報や、他の人を傷つける内容の投稿はお控えください。
投稿にはGoogleログインが必要です。
Googleでログイン投稿にはGoogleアカウントの表示名が公開されます。メールアドレスは取得・公開しません。
コメントを読み込んでいます…