【Excel】1つのセルに複数の値を入れる方法|リストとセル内配列を解説

Excelで1つのセルに複数の値を格納する方法を解説する記事のサムネイル
  • URLをコピーしました!

リスト(Lists)とセル内配列(Arrays in cells)は、2026年9月24日に発表されたMicrosoft 365 InsiderのBeta Channelで段階的に提供されているプレビュー機能です。

リストやセル内配列を使用すると、1つのセルに複数の値を保持できます。

本記事では、リストとセル内配列について解説します。

目次

前提条件

リストとセル内配列は、通常のMicrosoft 365および買い切り版のExcel 2024では利用できません。
利用するには、Microsoft 365 Insiderに参加し、Beta Channelへ切り替える必要があります。

なお、プレビュー機能のため、正式提供までに仕様が変更・延期・削除される可能性があります。

1つのセルに複数の値を入れる2つの方法

「リスト」と「セル内配列」を使用すると、1つのセルに複数の値を入れることができます。

リスト(Lists)とは

リスト(Lists)とは、1つのセルに複数の値を「項目」として保持する新機能です。

従来は「1つのセルに1つの値」が基本でしたが、リストでは複数の値をそれぞれ別々の項目として扱えるようになります。リスト内のそれぞれの値を「項目」と呼びます。

ここからは、リストの作成方法を解説します。

リストの作成方法

Microsoft公式では、リスト(Lists)の基本的な作成方法として[Ctrl]+[J]または[挿入]→[リスト]が案内されています。

STEP
リストを作成するセルを選択する

リストを作成するセルを選択します。
複数のセルを選択して一度にリストを作成することも可能です。

リストを作成するセルA1を選択しているExcel画面
STEP
リストの項目を入力する

リストの項目を半角カンマ(もしくは半角セミコロン ※補足あり)で区切って入力します。
下図では、セルA1に「apple」「lime」「plum」の3つの値が入っています。

セルA1に「apple, lime, plum」と半角カンマ区切りでリストの項目を入力しているExcel画面
STEP
リストを作成する

[Ctrl]+J を押して、リストを作成できる状態にします。

Excelでリストを作成するショートカット[Ctrl]+[J]を示したキーボード図

もしくは、[挿入]タブ にある[リスト]をクリックします。

Excelの[挿入]タブにある[リスト]ボタンの位置を示した画面

すると、セルの先頭に緑のアイコンが表示されます。

STEP
リストを確定する

[Enter]を押して、入力を確定します。
複数のセルを選択している場合は、[Ctrl]を押しながら、[Enter]を押してください。

リスト作成中にセルの先頭へ緑色、数式バーの先頭へ灰色のリストアイコンが表示されたExcel画面

セルの先頭に表示されていた緑のアイコンが、白いアイコンに変わります。

STEP
リストが作成されたか確認する

リストが作成されたか確認します。
リストの作成が完了すると、セルの左側にリストを示すアイコンが表示されます。

リストの入力確定後、セルの先頭のアイコンが緑色から白色に変化したExcel画面

リストとは別に、配列を1つのセル内に保持できる「セル内配列」という機能もあります。セル内配列については後ほど解説します。

[補足1]リストを区切る文字について

Microsoft公式では、地域設定に応じてカンマまたはセミコロンで区切ると案内されています。
筆者の環境では半角セミコロンで区切ることができませんでした。

半角セミコロンで区切れない場合は、半角カンマを使用してください。

[補足2]リストの作成手順について

先ほどは、項目を入力してから[Ctrl]+[J]を押してリストを作成しました。
ただし、操作の順番を逆にして、先に[Ctrl]+[J]などでリストを作成できる状態にしてから、リストの項目を入力することもできます。

つまり、「項目を入力→[Ctrl]+[J]」だけでなく、「[Ctrl]+[J]→項目を入力」でもリストを作成できます。

Microsoft公式でも、セルのリストを作成してから、リストの項目を入力しています。

筆者の環境では、[Ctrl]+[J]などでリストを作成できる状態にしてから項目を入力すると、1項目を日本語IMEで入力するとリストが解除されることがありました。Insiderならではの不具合の可能性があります。
そのため、項目を入力してからリストを作成することをおすすめします。

リストの項目を追加する

リストの項目を追加したいセルをダブルクリックするか、[F2]キーを押して編集モードにします。
既存の項目に続けてカンマを入力し、その後に追加したい項目を入力すると、リストに新しい項目を追加できます。

リストの項目を削除する

リストの項目を削除したいセルをダブルクリックするか、[F2]キーを押して編集モードにします。
削除したい項目を[Delete]キーなどで削除し、あわせて不要になったカンマも削除します。

たとえば、excel, word, PowerPointから word を削除する場合は、excel, PowerPointとなるように編集します。

なお、リスト自体を削除したい場合は、セルを選択して[Delete]キーを押します。

リストの項目を通常の値に変更する方法

リストを解除して、通常の値に変更する手順です。

対象のセルを選択して、[Ctrl]+J を押すか、[挿入]タブ にある[リスト]をクリックするとリストが解除できます。

セル内配列(Arrays in cells)とは

セル内配列(Arrays in cells)とは、複数の値を持つ配列を1つのセル内に保持できる新機能です。

従来、動的配列数式の結果は複数のセルにスピルして表示されていましたが、セル内配列では配列そのものを1つのセル内に保持できます。

ここからは、セル内配列の作成方法を解説します。

セル内配列の作成方法

波かっこ {} を使用する

D1・E1・F1の値を横方向にスピルさせる場合は、={D1,E1,F1} と入力します。
この数式をさらに波かっこで囲み、={{D1,E1,F1}} とすると、配列の結果を1つのセル内に保持できます。

データを区切る文字はスピルと同様です。
横方向に区切りたい場合は半角カンマ、縦方向に区切りたい場合はセミコロンを使用します。

横方向に区切る場合:={{1,2,3}}

123

縦方向に区切る場合:={{1;2;3}}

1
2
3

半角カンマと半角セミコロンを併用すると二次元配列にできます:={{1,2;3,4}}

12
34

HSTACK関数やVSTACK関数を使用する

HSTACK関数やVSTACK関数は、複数の配列や範囲を結合する関数です。
HSTACK関数は、横方向に配列や範囲を結合します。
=HSTACK(1,2,3)なら次のようになります。

123

VSTACK関数は、縦方向に配列や範囲を結合します。
=VSTACK(1,2,3)なら次のようになります。

1
2
3

HSTACK関数とVSTACK関数を組み合わせて、二次元配列を作成することもできます。

={HSTACK(VSTACK(B1:B3),VSTACK(G1:G3))}

※下表はセルの参照位置を表示しています

B1G1
B2G2
B3G3

={VSTACK(HSTACK(B1:D1),HSTACK(G1:I1))}

※下表はセルの参照位置を表示しています

B1C1D1
G1H1I1

リストの項目数・セル内配列の行数や列数を取得する方法

列数を取得する

リストの項目数やセル内配列の列数を取得する場合は、COLUMNS関数を使用します。
[Ctrl]+[J]などで作成したリストは基本的に横方向に項目が並ぶため、COLUMNS関数で項目数を取得できます。
例えば、セルA1に3つの項目を持つリストが入っている場合、次の数式は「3」を返します。
=COLUMNS(A1)

使用例:

={{1,2,3,4}} が入力されているセルをCOLUMNS関数で取得すると 4 となる。

={{1;2;3;4}} が入力されているセルをCOLUMNS関数で取得すると 1 となる。

={{1,2,3;4,5,6}} が入力されているセルをCOLUMNS関数で取得すると 3 となる。

行数を取得する

セル内配列の行数を取得する場合は、ROWS関数を使用します。
なお、リストは基本的に横方向に項目が並ぶため、ROWS関数を使用した場合は「1」となります。

使用例:

={{1,2,3,4}} が入力されているセルをROWS関数で取得すると 1 となる。

={{1;2;3;4}} が入力されているセルをROWS関数で取得すると 4 となる。

={{1,2,3;4,5,6}} が入力されているセルをROWS関数で取得すると 2 となる。

リスト・セル内配列で使える新しい関数

リストやセル内配列と特に相性が良い関数を4つ紹介します。

ただし、4つ全ての関数が、Beta Channel向けの新機能のため、仕様が変更されたり、本関数が削除される可能性があります。
また、2026年10月現在、Microsoft Supportには各関数の個別マニュアルページは確認できませんでした。

HAS関数

HAS関数は「第一引数の配列の中に、第二引数で指定した値が存在するか」をTRUE/FALSEで返します。
HAS関数の名前は、HAVEの三人称単数形かと思われます。

基本形:

=HAS(array, value)

  1. array(必須)
    検索対象となる配列を指定します。
  2. value(必須)
    array の中に、存在するか確認したい値を指定します。

使用例:

=HAS({VSTACK("Excel","Excel VBA")}, "Excel") → TRUE

=HAS({VSTACK("Excel","Excel VBA")}, "Word") → FALSE

HASANY関数

HASANY関数は「第一引数の配列の中に第二引数で指定した値のうち、いずれかが第一引数の配列に存在するか」を真偽で返します。
名前は、HAS(HAVEの三人称単数形)+ANY(いずれか)かと考えると分かりやすいです

基本形:

=HASANY(array, values)

  1. array(必須)
    検索対象となる配列を指定します。
  2. values(必須)
    array の中に、いずれか1つでも存在するか確認したい値を指定します。

使用例:

=HASANY({VSTACK("Excel", "Excel VBA")}, "Excel") → TRUE

=HASANY({VSTACK("Excel", "Excel VBA")}, {"Excel VBA", "Word"}) → TRUE

=HASANY({VSTACK("Excel", "Excel VBA")}, {"Outlook", "Access"}) → FALSE

=HASANY({VSTACK("Excel", "Excel VBA", "Word")}, {"Excel", "Excel VBA"}) → TRUE

=HASANY({VSTACK("Excel", "Excel VBA", "Word")}, {VSTACK("Excel", "Excel VBA")}) → TRUE

HASALL関数

HASALL関数は「第一引数の配列の中に第二引数で指定した値がすべて第一引数の配列に存在するか」を真偽で返します。
名前は、HAS(HAVEの三人称単数形)+ALL(全て)かと考えると分かりやすいです

基本形:

=HASALL(array, values)

  1. array(必須)
    検索対象となる配列を指定します。
  2. values(必須)
    array の中にすべて存在するか確認したい値を指定します。

使用例:

=HASALL({VSTACK("Excel", "Excel VBA")}, "Excel") → TRUE

=HASALL({VSTACK("Excel", "Excel VBA")}, {"Excel", "Word"}) → FALSE

=HASALL({VSTACK("Excel", "Excel VBA")}, {"Outlook", "Access"}) → FALSE

=HASALL({VSTACK("Excel", "Excel VBA", "Word")}, {"Excel", "Excel VBA"}) → TRUE

=HASALL({VSTACK("Excel", "Excel VBA", "Word")}, {VSTACK("Excel", "Excel VBA")}) → TRUE

FLATTEN関数

FLATTEN関数は、入れ子になった配列から1つ以上の階層を取り除き、より単純な配列にする関数です。
結果はシート上にスピルされます。
FLATTENは英語で「平らにする」という意味の動詞です。

基本形:

=FLATTEN(array, [pad_value],[levels])

  1. array(必須)
    階層を取り除く対象となる配列を指定します。リストやセル内配列、入れ子になった配列などを指定できます。
  2. pad_value(省略可)
    入れ子配列を展開した際に生じる不足部分を埋める値を指定します。
  3. levels(省略可)
    取り除く入れ子配列の階層数を指定します。

例:

スピルの機能を用いてシート上に配列の値を表示できます。
下図を参照ください。

FLATTEN関数で縦方向・横方向・二次元のセル内配列をシート上にスピル表示した4つの例

第二引数の比較用です。

FLATTEN関数で長さの異なる配列を展開し、第2引数の指定によって不足部分の「#N/A」を「---」で埋めた比較

4つの関数の一覧

先の関数のまとめです。

関数名役割サンプル結果
HAS指定した値があるか=HAS(A1,"Excel")TRUE / FALSE
HASANY指定した値のどれか1つでもあるか=HASANY(A1,{"Excel", "Access"})TRUE / FALSE
HASALL指定した値がすべてあるか=HASALL(A1,{"Excel", "Word"})TRUE / FALSE
FLATTEN入れ子配列の階層を取り除く=FLATTEN(A1)(スピルで表示される)

メリットとデメリット

リストとセル内配列を使用するメリットとデメリットです。

リストとセル内配列の共通のメリット

複数の値を1セルにまとめられる

リストやセル内配列を使うメリットは、複数の値を1セルにまとめられることです。

例えば、企業の担当者を入力する時「担当者1」「担当者2」「担当者3」の列をそれぞれ作成して、担当者の人数が増えたら列を追加する必要がありました。
リストやセル内配列を使えば、列を増やさず、1セルに複数の値を保持できます。

各値を個別に扱える

1つのセルに複数の値を入れることで表を作成した時に抽出をしやすい場合があります。
例えば、次の表から得意スキルが「Excel」の社員だけを抽出したいとします。

社員番号氏名得意スキル
10001山田 太郎Excel, Excel VBA, Word
10002佐藤 俊彦Excel VBA, Word
10003髙橋 雄一Excel, Word

通常のセルに、Excel, Excel VBA, Wordと入力した場合、Excelではこれらを別々の値ではなく、1つの文字列として扱います。そのため、Excelを含むデータでフィルターをかけると、Excel VBA を含むセルまで対象になることがあります。

  • 山田 太郎 → Excelあり → 抽出
  • 佐藤 俊彦 → Excel VBA の先頭部分が一致する → 原則、抽出してしまう
  • 髙橋 雄一 → Excelあり → 抽出

一方、リストを使用すると、Excel,Excel VBA,Wordをそれぞれ別の項目として入れることができます。

  • 山田 太郎 → Excelあり → 抽出
  • 佐藤 俊彦 → Excel VBAはあるがExcelはない → 抽出しない
  • 髙橋 雄一 → Excelあり → 抽出

リスト特有のメリット

数式を使用せずに作成できる

セル内配列とは異なり、リストの作成は数式を使用しないため、編集しやすいです。
チームにExcel初心者がいる場合、この仕様は大きな助けになります。

リスト特有のデメリット

二次元配列を作成できない

現時点のリストでは、2行×2列のような二次元の構造では作成できません。
二次元配列を扱いたい場合は、セル内配列を使用します。

セル内配列特有のメリット

二次元配列を1つのセルに保持できる

セル内配列では、1行または1列の配列だけでなく、2行×2列などの二次元配列も1つのセル内に保持できます。
そのため、表形式のデータや行列のように、行と列を持つデータを1つのセル内で扱うことができます。

セル内配列特有のデメリット

数式を使用する必要があり、初心者にはハードルが高い

セル内配列では、数式を使用するため、Excel初心者にはハードルが高くなります。
特に二次元配列などの複雑な構造になると、管理できる人が限られる場合があります。

業務の属人化を避けるため、操作マニュアルを作成するなどの工夫が必要となる場合があります。

注意点

リストとセル内配列の注意点です。

2026年10月現在、リストとセル内配列はBeta Channel向けの新機能

2026年10月現在、リストとセル内配列はBeta Channelの機能です。
そのため、仕様が変更される可能性があります。

また、これらの機能が削除される可能性があります。

非対応環境とのファイル共有に注意する

リストやセル内配列を使用したExcelファイルを他のユーザーと共有する場合は、相手のExcelでもこれらの機能を利用できるか確認しましょう。

なお、2026年10月現在はプレビュー機能です。Microsoftも、一般提供されるまでは重要なブックでの利用を推奨していません。

入れ子配列の計算では互換性バージョン3が必要になる場合がある

セル内配列では、配列の中に別の配列を保持する「入れ子配列」を扱うことができます。
Microsoftによると、入れ子配列を使用する多くの計算では、ブックの互換性バージョン3が必要です。

なお、互換性バージョン3に変更すると、一部の既存数式で計算結果が変わる可能性があります。

日本語IMEでは入力時に挙動が怪しい場合がある

筆者の環境では、1つ目の項目を日本語IMEで入力するとリストが解除されることがありました。

詳しくは「[補足2]リストの作成手順について」を参照してください。

リストは[検索と置換]で置換ができない

Microsoft公式では、既知の制限として[検索と置換]ではリストやセル内配列に含まれる値を置換できないと案内されています。

筆者の環境では、リストの項目は置換できませんでした。一方、セル内配列については[置換]および[検索]が正常に動作しました。

プレビュー機能のため、環境や提供状況によって挙動が異なる可能性があります。

まとめ

リスト(Lists)とセル内配列(Arrays in cells)を使用すると、1つのセルに複数の値を保持できます。

リストは数式を使用せずに作成・編集できるため、担当者やスキルなど複数の項目を手軽に管理したい場合に向いています。一方、セル内配列は数式を使用する必要がありますが、2行×2列などの二次元配列も1つのセル内に保持できます。

また、HAS・HASANY・HASALL・FLATTENといった新しい関数を利用することで、リストやセル内配列に含まれる値の確認や、入れ子になった配列の整理も可能です。

2026年10月現在、リストとセル内配列はMicrosoft 365 InsiderのBeta Channel向け機能です。正式提供までに仕様が変更される可能性があるため、実務で使用する場合は利用環境や互換性にも注意しましょう。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

元・エクセル迷子。関数やグラフに頭を抱えつつ、地道に勉強してきました。
今では「むずかしいを、やさしく」にこだわって、初心者さん向けにExcelのコツを発信中。
「なんか分かるかも!」って思える瞬間を一緒に楽しみましょう♪

目次