配列数式の利用方法

Excel で用意されている配列数式を利用すると、複数のセルに対して同じ計算式を使って一度に計算を実行したり、複数の計算式を組み合わせて一つの計算式として結果を表示したりすることができます。ここでは Excel における配列数式の使い方について解説します。

(Last modified: )

複数のセルに対して同じ数式を使って計算する

最初に複数のセルに対して同じ数式を使ってそれぞれの結果を計算する方法について解説します。

配列数式を使わない場合

Excel に次のようなデータを入力し、それぞれの商品毎に売上を計算する場合で考えてみます。最初に配列数式を使わない場合です。

複数のセルに対して同じ数式を使って計算する(1)

売上=単価×販売数 なので、最初に E3 セルに対して次のような式を入力します。

=C3*D3

複数のセルに対して同じ数式を使って計算する(2)

Enter キーを押すと、式の結果が売上として表示されます。

複数のセルに対して同じ数式を使って計算する(3)

E4 セルから E7 セルについても E3 セルのフィルハンドルをドラッグしてコピーすることでそれぞれ売上を計算することができます。

複数のセルに対して同じ数式を使って計算する(4)

複数のセルに対して同じ数式を使って計算する(5)

このとき E3 セルから E7 セルには相対参照を使ってそれぞれ異なる式が入力されています。例えば E3 セルには =C3*D3 という式が入力されていますが、 E4 セルには =C4*D4 という式が入力されています。

配列数式を使用する

次に配列数式を使った場合です。配列数式を使う場合は、それぞれのセルに異なる式を入力するのではなく、複数のセルに対して同一の計算式を一度に入力し、計算結果を表示することができます。

最初に数式を入力する複数のセルを選択してください。

複数のセルに対して同じ数式を使って計算する(6)

次に単価が入力されているセルの範囲の C3:C7 と、販売数が入力されているセル範囲 D3:D7 を使って次のように数式バーに入力します。

=C3:C7*D3:D7

複数のセルに対して同じ数式を使って計算する(7)

入力が終わったら CtrlShiftEnter キーを押してください。選択していた E3 セルから E7 セルに配列数式が入力されてそれぞれのセルに式が実行された結果が表示されます。

複数のセルに対して同じ数式を使って計算する(8)

このとき E3 セルから E7 セルにはすべて同じ式が入力されます。式は入力した =C3:C7*D3:D7 を { と } で囲んだ式が入力されます。

{=C3:C7*D3:D7}

複数のセルに対して同じ数式を使って計算する(9)

なお、数式バーに { と } を付けた {=C3:C7*D3:D7} を手動で入力し、そのあとで Enter キーを押しても配列数式としては扱われません。必ず数式を入力したあとで CtrlShiftEnter キーを押してください。

この形式で配列数式を使用する場合は、配列数式を使用しなくても実現できるものです。配列数式を使用することで対象の複数のセルに対して同一の式を使っていることが明確にすることができます。

複数のセルの計算結果をまとめて別の関数に渡す

次に複数のセルに対して行った計算結果を、まとめて別の関数の引数として渡す方法について解説します。

配列数式を使わない場合

Excel に次のようなデータを入力し、それぞれの商品毎に売上を計算し、その合計を取得するする場合で考えてみます。最初に配列数式を使わない場合です。

複数のセルの計算結果をまとめて別の関数に渡す(1)

商品毎に売上を計算した上で加算するか SUM 関数の引数に指定して総売上を計算します。今回は E9 セルに次のように式を入力しました。

=SUM(C3*D3,C4*D4,C5*D5,C6*D6,C7*D7)

複数のセルの計算結果をまとめて別の関数に渡す(2)

Enter キーを押すと、式の結果が総売上として表示されます。

複数のセルの計算結果をまとめて別の関数に渡す(3)

今回は商品の数がそれほど多くなかったので一つ一つ記述することで結果を取得することができましたが、通常このような場合はそれぞれの商品ごとに売上を計算したあとで、各売上の合計を計算します。

複数のセルの計算結果をまとめて別の関数に渡す(4)

複数のセルの計算結果をまとめて別の関数に渡す(5)

配列数式を使用する

次に配列数式を使った場合です。配列変数を使用すると、複数のセルに同じ演算を行う場合にひとつひとつの結果をいったん別のセルに保管することなく SUM 関数などの引数にまとめて渡すことができます。

総売上を表示する E9 セルに次のように配列数式を使った式を入力しました。 C3 から C7 のセルに入力されている値に、 D3 から D7 のセルに入力されている値を乗算した結果をそれぞれ SUM 関数の引数として渡しています。

=SUM(C3:C7*D3:D7)

複数のセルの計算結果をまとめて別の関数に渡す(6)

入力が終わったら CtrlShiftEnter キーを押してください。 C3:C7 のセルに対して D3:D7 のセルを乗算してそれぞれの結果を SUM 関数で集計した結果が E9 セルに表示されます。

複数のセルの計算結果をまとめて別の関数に渡す(7)

このとき E9 セルには入力した =SUM(C3:C7*D3:D7) を { と } で囲んだ式が入力されます。

{=SUM(C3:C7*D3:D7)}

複数のセルの計算結果をまとめて別の関数に渡す(8)

なお、今回も数式バーに { と } を付けた {=SUM(C3:C7*D3:D7)} を手動で入力し、そのあとで Enter キーを押しても配列数式としては扱われません。必ず数式を入力したあとで CtrlShiftEnter キーを押してください。

このように配列数式を使用することで、商品ごとの売上などいったん計算を行った結果をセルに表示したあとでさらに集計を行わなくても、直接集計を行うセルに計算式を入力することができます。

配列数式を使った別の例

もう一つ別の例で配列数式を使ってみます。 Excel に次のようにデータを入力しました。

複数のセルの計算結果をまとめて別の関数に渡す(9)

各セルに入力された単語の文字数の合計を取得します。配列変数を使用しない場合であれば、各行ごとに LEN 関数を使って単語の文字数を取得したあとで SUM 関数を使って各行の文字数の合計を取得します。

複数のセルの計算結果をまとめて別の関数に渡す(10)

複数のセルの計算結果をまとめて別の関数に渡す(11)

配列変数を使うことで各単語ごとに文字数をいったん取得する必要がなくなります。結果を表示する C9 セルに次のように数式を入力します。

=SUM(LEN(B3:B7))

複数のセルの計算結果をまとめて別の関数に渡す(12)

入力が終わったら CtrlShiftEnter キーを押してください。 B3:B7 のセルに対してそれぞれ LEN 関数で文字数を取得した結果を SUM 関数で集計した結果が C9 セルに表示されます。

複数のセルの計算結果をまとめて別の関数に渡す(13)

今回も配列数式を使用することで、単語ごとの文字数を取得した結果をセルに表示したあとでさらに集計を行わなくても、直接集計を行うセルに計算式を入力することができました。

配列を返す関数の結果を一度に複数のセルに入力する

最後に配列のように複数の値を返す関数の結果を、あらかじめ選択しておいた複数のセルにまとめて入力する方法について解説します。例として単位行列を返す MUNIT 関数で試してみます。

MUNIT 関数では引数に次元を表す数値を指定すると、その次元の単位行列を返します。例えば引数に 3 を指定した場合、次のような単位行列を返します。

配列を返す関数の結果を一度に複数のセルに入力する(1)

MUNIT 関数が返す値を複数のセル範囲にまとめて入力するには、必要な数のセル範囲を選択した上で数式バーに次のように入力します。

=MUNIT(3)

配列を返す関数の結果を一度に複数のセルに入力する(2)

入力が終わったら CtrlShiftEnter キーを押してください。あらかじめ選択していたセル範囲に MUNIT 関数が返す複数の値が表示されます。

配列を返す関数の結果を一度に複数のセルに入力する(3)

このように複数の値を返す関数の使用するときに、配列数式にすることであらかじめ選択しておいた複数のセルに対して同じ数式を使って値を入力することができます。

※ Microsoft 365 の環境であれば、単一のセルに対して MUNIT 関数を入力したとき、結果を表示するセルが自動的に拡張されて値が入力されます。

-- --

Excel における配列数式の使い方について解説しました。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。