Excel (一般機能)

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

 
(Windows 10全般 : Excel 2021)
月ごとに違うグループでの集計方法
投稿日時: 24/07/12 11:05:01
投稿者: nolhu

1シート目
     A   B    
    4月  5月 6月…
1 Aさん 1800 1500
2 Bさん 2000 2500
3 Cさん 300  400
4 Dさん 255  1000
5 Eさん 3545 1200
6 Fさん 100  -80
7 Gさん 1000 1250
...
 
2シート目
      A     B    
     4月    5月   6月…
1 Aさん 犬チーム  犬チーム
2 Bさん 鳥チーム  鳥チーム
3 Cさん 犬チーム  鳥チーム
4 Dさん 犬チーム  犬チーム
5 Eさん 鳥チーム  鳥チーム
6 Fさん 鳥チーム  犬チーム
7 Gさん 犬チーム  鳥チーム
...
 
上記の様に、月ごとに所属チームが変わる際の、犬チームと鳥チームの単月と累計のそれぞれの合計数字を出したいです。
現状は方法が分からない為、SUMで毎月対象を選び、増やしていっております。
何か方法が分かる方がいらっしゃいましたらご教示いただけますと幸いです。

回答
投稿日時: 24/07/12 11:45:33
投稿者: 半平太

月と氏名の並びは、Sheet1とSheet2で全く同じなんですか?
 
累計はどんな形で出すんですか?(具体例が欲しい)

投稿日時: 24/07/12 12:22:13
投稿者: nolhu

半平太 さん
状況説明が不足しており、申し訳ございません。
  
>月と氏名の並びは、Sheet1とSheet2で全く同じなんですか?
⇒こちらはSheet1とSheet2で全く同一で管理しております。
  
>累計はどんな形で出すんですか?(具体例が欲しい)
  
累計は現状下記の様にさらに別シートで当月数字と累計数字を表示させております。
A列の当月数字は4月なら4月、5月なら5月の数字を表示し、
B列の累計数字には4月なら4月のみ、5月なら4〜5月の累計の数字を表示しております。
月ごとにチームが変わる為、Sheet1の数字をどうSheet3の形に合わせるかが分からない為、
現状はSUMで1人ずつ該当のチームに増やしていっております。
  
Sheet3
       A     B
     当月数字  累計数字
1 総額    7770   16770
2 犬チーム  2420    5775
3 鳥チーム  5350   10995
  
手作業での追加は何時か間違いが起きてしまいそうな為、
なにか良き方法がございましたら、ご教示いただけますと幸いです。
宜しくお願い致します。
 

回答
投稿日時: 24/07/12 13:08:43
投稿者: 半平太

当月だと、7月ですよね?
その例は、当月が5月の想定なんですか?
 
そうだとしても、月途中では参考にならず、
通常、翌月初に前月末までを求めますよね。
 
すると、それはもう当月とは呼ばず前月となるのですが、
この辺りの考え方はどうなっていますか?
 
いっその事、「当月」ではなくB1セルに「2024/5/1」とか
具体的に入れた方が明快ではないですか?

回答
投稿日時: 24/07/12 13:12:04
投稿者: んなっと

「当月」が「入力のある右端の列」という意味なら
 
     A     B     C
1      当月数字 累計数字
2   総額   7770   16770
3 犬チーム   2420   5775
4 鳥チーム   5350   10995
 
B3
=LET(j,AGGREGATE(14,6,COLUMN(A:Z)/(Sheet2!A$2:Z$100<>""),1),
SUMIF(INDEX(Sheet2!A$2:Z$100,,j),A3,INDEX(Sheet1!A$2:Z$100,,j)))
下方向・↓
 
C3
=SUMIF(Sheet2!A$2:Z$100,A3,Sheet1!A$2:Z$100)
下方向・↓

回答
投稿日時: 24/07/12 13:27:06
投稿者: んなっと

LETが使えなければ...
B3
=SUMPRODUCT((INDEX(Sheet2!A$2:Z$100,,AGGREGATE(14,6,COLUMN(A:Z)/(Sheet2!A$2:Z$100<>""),1))=A3)
*(INDEX(Sheet1!A$2:Z$100,,AGGREGATE(14,6,COLUMN(A:Z)/(Sheet2!A$2:Z$100<>""),1))))
 
またはどこかのセル、例えば D1 に
=AGGREGATE(14,6,COLUMN(A:Z)/(Sheet2!A$2:Z$100<>""),1)
としておいて、
B3
=SUMPRODUCT((INDEX(Sheet2!A$2:Z$100,,D$1)=A3)*(INDEX(Sheet1!A$2:Z$100,,D$1)))

投稿日時: 24/07/12 13:57:02
投稿者: nolhu

> 半平太 さん
質問の内容がさらに分かり難かった様で、大変申し訳ございません。
 
 
> んなっと さん
D1に=AGGREGATE(14,6,COLUMN(A:Z)/(Sheet2!A$2:Z$100<>""),1)を入れる方の式でうまく数字を出すことが出来ました!
いくつも例を出して頂きありがとうございます。