スピル機能を利用して、各行、各列に同じ数式を適用する - BYROW、BYCOL、LAMBDA関数の利用 - Excel

スピル機能を利用して、各行、各列に同じ数式を適用する手順を紹介します。

概要

下図の表がある場合を考えます。
品名4月5月6月
ぺんぎんクッキー363842
らくだキャラメル182512
あざらしアイス9166
かもしかキャンディ242819
かわうそカステラ659



F列に合計の値を計算する場合、従来は、F4セルに次の数式を入力します。
=SUM(C4:E4)


数式を確定すると、C,D,E列の合計値がF4セルに表示されます。


F4セルをコピーして、5Fセルから8Fセルにペーストすることで各行の合計値を求められます。


上記の方法で各行の合計値を求められますが、数式を変更したい場合は、F列のセルの内容を削除して、作業をはじめからやり直す必要があります。 また、可能性は低いですが、ペーストのミスで数式が異なる行が出る可能性があります。
新しいExcelでは、スピルの機能を利用して、1つの数式で各行の処理をさせる方法があります。
この記事では、BYROW、BYCOL、LAMBDA関数、スピル機能を利用して、各行、各列に同じ数式を適用する方法を紹介します。

手順:各行に同じ数式を適用する

書式

次の書式を利用します。
BYROW([データの範囲], LAMBDA([パラメーター名], [適用する数式]) )

処理の解説

BYROW関数の1番目のパラメーターのデータの範囲のそれぞれの列の値をLAMBDA関数の最初のパラメーターに渡します。
渡されたパラメーターをどのように処理するかを[適用する数式]に記述します。
BYROW関数は行方向スピルするため、記述した行の次の行には、データの次の行の値をLAMBDA関数に渡した結果を表示します。

実施例

先の表で、F4セルに次の数式を入力します。
C4:E8セルの範囲でF4セルには4行目の値の合計値を表示し、以降の行ではセルの範囲の以降の行の合計値を表示します。
=BYROW(C4:E8,LAMBDA(array,SUM(array)))



数式を確定します。F4セルにのみ数式を入力しましたが、各行のF列にそれぞれの行の合計値が表示されます。

手順:各列に同じ数式を適用する

書式

次の書式を利用します。
BYCOL([データの範囲], LAMBDA([パラメーター名], [適用する数式]) )

処理の解説

BYCOL関数の1番目のパラメーターのデータの範囲のそれぞれの行の値をLAMBDA関数の最初のパラメーターに渡します。
渡されたパラメーターをどのように処理するかを[適用する数式]に記述します。
BYCOL関数は列方向にスピルするため、記述した列の次の列には、データの次の列の値をLAMBDA関数に渡した結果を表示します。

実施例

下図の表を作成します。


C9セルに次の数式を入力します。
C4:E8セルの範囲でC9セルにはC列の値の合計値を表示し、以降の列ではセルの範囲の以降の列の合計値を表示します。
=BYCOL(C4:E8,LAMBDA(array,SUM(array)))



数式を確定します。C9セルにのみ数式を入力しましたが、各列の9行目にそれぞれの列の合計値が表示されます。


BYROW,BYCOL 関数を利用して、各行、各列に同じ数式を適用できました。
著者
iPentecの企画・分析担当。口が悪いのでなるべく寡黙でありたいと思っている。が、ついついしゃべってしまい、毎回墓穴を掘っている。
掲載日: 2024-09-14
iPentec all rights reserverd.