Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 11 Home : Excel 2019)
集計の簡略化
投稿日時: 23/09/12 13:55:42
投稿者: shimoichimabu

下記の表で指定した納付月の集計がしたいです。
例. 集計範囲をA1:E6とすると、納付月が1月の金額を集計すると、
 B1+C1+D1+D3+E3=200+400+330+400+500=1830 となります。
集計する関数式は
=SUMIF(B2:E2,1,B1:E1)+SUMIF(B4:E4,1,B3:E3)+SUMIF(B6:E6,1,B5:E5)    
 
しかし、集計範囲が A1:E6くらいだと、SUMIFが3つで済みますが、
集計範囲がもっと増えると、更にSUMIFが必要となってきます。
そもそもこの表のスタイルが集計に適したものではないです。(知人からのファイル)
本来でしたら、A列に納付月、B列に金額のスタイルであれば、集計も簡単ですが・・・。
上記の冗長な集計値を求める数式をもっと簡単な式にしたいのですが、
ご助言の程、宜しくお願い致します。
SUMPRODUCT関数(配列式になった場合、Ctrl+Shift+Enterが不要)を使えば、
出来そうなきがしますが・・。
 
   A     B   C    D    E
1 金額    200    400    330    450
2 納付月    1    1    1    2
---------------------------------------------
3 金額    320    300    400    500
4 納付月    2    2    1    1
---------------------------------------------
5 金額    340    420    220    350
6 納付月    4    3    3    3
---------------------------------------------
・・・・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・・・・
---------------------------------------------
・・・・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・・・・
                
 

回答
投稿日時: 23/09/12 14:45:01
投稿者: sk

引用:
そもそもこの表のスタイルが集計に適したものではないです。(知人からのファイル)
本来でしたら、A列に納付月、B列に金額のスタイルであれば、集計も簡単ですが・・・。

例えば Power Query を使用して、そういうレイアウトのテーブルに
整形した上で集計するという方法もあるでしょう。

回答
投稿日時: 23/09/12 18:16:22
投稿者: んなっと

=SUMPRODUCT(B1:E6,(A1:A6="金額")*(B2:E7=1))
 
B2:E7 ←範囲をひとつ下にずらしています

投稿日時: 23/09/13 11:44:48
投稿者: shimoichimabu

skさん、 んなっとさん回答ありがとうございます。
 
>例えば Power Query を使用して、そういうレイアウトのテーブルに
>整形した上で集計するという方法もあるでしょう。
ご助言、ありがとうございます。
Power Queryは使ったことが無く(昔、ピボットテーブルは使用したこと有り)、
Power Queryを起動して見たけど、すぐには使いこなせず、勉強します。
 
> =SUMPRODUCT(B1:E6,(A1:A6="金額")*(B2:E7=1))
希望通り、集計できました!
ありがとうございました。
後出しで申し訳ないですが、下記のように
A列の項目を1つ追加した場合は #N/A とエラーが出ますが、
SUMPRODUCT関数式はどのように変更したら宜しいでしようか?
 
   A   B   C   D   E
1 金額  200  400  330  450
2 摘要  ○  ○     ○      ← 追加項目
3 納付月  1   1   1    2
----------------------------------------
4 金額  320  300  400  500
5 摘要     ○  ○         ← 追加項目
6 納付月  2   2   1   1
----------------------------------------
7 金額  340  420  220  350
8 摘要  ○        ○      ← 追加項目
9 納付月  4   3   3   3
----------------------------------------
・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・

回答
投稿日時: 23/09/13 15:53:37
投稿者: んなっと

=SUMPRODUCT(B1:E7,(A1:A7="金額")*(B3:E9=1))
  
B3:E9 ←範囲をふたつ下にずらします

投稿日時: 23/09/13 16:41:48
投稿者: shimoichimabu

んなっとさん回答ありがとうございます。
 
>=SUMPRODUCT(B1:E7,(A1:A7="金額")*(B3:E9=1))
>B3:E9 ←範囲をふたつ下にずらします
 
項目を増やしても希望通り集計できました!
ありがとうございました。
本当に助かりました。