いきなり答える備忘録

Google Workspace・Microsoft 365・LibreOfficeなどに関するメモ

(Excel)1つの式で行ごとの合計/最大値/最小値等を求める

 Excelで数値の合計を行ごとに求める場合、SUM関数を各行に配置するのが普通ですが、ここでは1つの式で済む方法を試してみます。

  • BYROW関数とLAMBDA関数、SUM関数を使って行ごとの合計を1つの式で求めることができます。
  • 行ごとの最大値、最小値、平均などを求めるのにも応用できます。

手順

f:id:accs2014:20220316010654p:plain:right:w500

 画像ではそれぞれの日付に対応する各店舗の数値が横方向(行方向)に並んでいます。
 日付ごとの合計を求める場合、各行に「=SUM(C3:F3)」といった関数を配置していくのが簡単な方法ですが、ここではG3セルに1つの式を入力するだけでそれぞれの日付(行)の合計をすべて表示させています。

 G3セル

=BYROW(C3:F5,LAMBDA(a,SUM(a)))

 BYROW関数とLAMBDA関数を用いることでC3:F5の範囲にaという名前を付け、そのaを各行ごとに分割してSUM(a)を実行した結果をそれぞれ得ています。
 ちなみに「=BYROW(SUM(C3:F5))」とかで済ませられないだろうかという気もしますが、残念ながらそれではうまくいきません(エラー)。
 


f:id:accs2014:20220316010658p:plain:right:w500

 画像では上記の式中のSUM関数をMAX関数に代えて、各行の最大値を求めています。
 さらにMIN関数に代えれば最小値が求められますし、AVERAGE関数やMEDIAN関数などさまざまな関数にも応用できます。

 G3セル

=BYROW(C3:F5,LAMBDA(a,MAX(a)))