Excel (一般機能)

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

 
(Windows 10 Home : Microsoft 365)
上のセルと同じ日、同じ値なら数値を変えて合計を求める
投稿日時: 24/02/02 15:51:18
投稿者: jimusyo

お世話になります
 
下のような表があります。
日付 商品A 商品B 商品C 商品D 合計
1/1  〇      〇     400
1/1  〇   〇        300
1/2  〇      〇     400
1/2         〇  〇  300
 
・上のセルの日付が一緒で、上(同じ商品)に〇がある場合は100
・上のセルの日付が一緒で、上(同じ商品)に〇が無い場合は200
・上のセルの日付と違えば〇は全て200
として、合計を求めたいです。
 
現在合計を一発で出す方法がわからず、
=SUM(IF(AND(A2="〇",A2=A1),100,IF(AND(A2="〇",A2<>A1),200,0)))
のように別セルにそれぞれ上記の式を書いて、
合計に=SUM(G2:J2)のように記述して合計を求めています。
 
上記のような条件で、合計箇所にすっきりした式など
ございますでしょうか
 
よろしくお願いします。

回答
投稿日時: 24/02/02 16:19:47
投稿者: んなっと

   A   B   C   D   E   F
1 日付 商品A 商品B 商品C 商品D 合計
2  1/1   〇      〇     400
3  1/1   〇   〇         300
4  1/2   〇      〇     400
5  1/2          〇   〇  300
 
F2
=SUM(IF(B2:E2="〇",IF((A2=A1)*(B1:E1="〇"),100,200),0))
下方向・↓
 
または
 
F2
=LET(x,A2:E500,y,TAKE(x,,1),
a,TAKE(y,XMATCH(TRUE,y<>"",,-1)),b,TAKE(DROP(x,,1),ROWS(a)),
BYROW(IF(b="〇",IF((a=OFFSET(a,-1,))*(OFFSET(b,-1,)="〇"),100,200),0),SUM))

投稿日時: 24/02/02 17:42:05
投稿者: jimusyo

んなっと様
 
早々にご回答いただきありがとうございました。
私が求めている結果無事表示できました。
 
=SUM(IF(B2:E2="〇",IF((A2=A1)*(B1:E1="〇"),100,200),0))
とてもシンプルでわかりやすかったです。
 
ありがとうございました。