Quantcast
Channel: なんでもエクセル(Nandemo Excel)
Viewing all articles
Browse latest Browse all 60

数式/関数:フィルタで抽出した値を条件付きで集計する

$
0
0

以前にも一度書いたんですが、定期的に質問が出るので記事も定期的にあげてみます。フィルタで抽出してから条件指定で計算する方法です。

フィルタをかけるなら全部フィルタでやるべきですし、数式で計算するなら全部数式でやればいいんですが、「フィルタをかけてから SUMIFS関数/COUNTIFS関数で計算」に強いこだわりのある人が時々います。

幸い、Microsoft365(もしくは Excel2024)であれば、比較的簡単に計算できるようにはなりました。

Excel2024
D19 =SORT(UNIQUE(テーブル1[販売先])) E19 =BYROW(D19#,LAMBDA(y,SUM(MAP(テーブル1[金額],LAMBDA(x,AGGREGATE(3,5,x))) *(テーブル1[販売先]=y)*テーブル1[金額])))

GROUPBYを使えばもっと楽ができます。

Microsoft365
=LET(     x,FILTER(テーブル1,MAP(テーブル1[金額],LAMBDA(x,AGGREGATE(3,5,x)))),     GROUPBY(INDEX(x,,2),INDEX(x,,4),SUM,0,0) )

古いバージョンの Excelでも、SUBTOTAL関数や AGGREGATE関数を使って、計算を作業セルに分けるか INDIRECTと配列計算を組み合わせるかすれば集計できるんですが、正直お勧めはしません。単純な集計のためだけに計算結果が揮発する配列数式を入れるというのはコスパが悪いです。ピボットテーブルやパワークエリを使えば済む話ですので、「フィルタと数式の条件計算の組み合わせ」にこだわりがないなら避けたほうがいいです。


Viewing all articles
Browse latest Browse all 60

Trending Articles