Excel (一般機能)

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

 
(Windows 10 Home : Excel 2021)
COUNTIF関数でしょうか。
投稿日時: 24/12/03 01:24:39
投稿者: JIRO-KUN

	A	B	C	D	E	F
1	くらす	なまえ	数量		なまえ	クラス
2	K1	りんご	4		いちご	M2
3	T5	バナナ	1		バナナ	T5
4	M2	いちご	2		いちご	M2
5	K2	ぶどう	1		りんご	K1
6	C7	バナナ	3		バナナ	C7
7	T2	ぶどう	3		バナナ	C7
8	M4	メロン	1		りんご	K1
9					ぶどう	K2
10					ぶどう	T2
11					りんご	K1
12					ぶどう	T2
13					バナナ	C7
14					メロン	M4
15					りんご	K1
16					ぶどう	T2
A1〜E16まで値が入っていまして、
F列にエクセル関数で結果を返したいです。
 
F列の結果は、
B列のバナナで説明しさせていただきますと、
(A列)T5に1個とC7に3個あり合計4個あります。
E列のバナナを上からF列に
 
T5
C7
C7
C7
 
と返したいです。
他のものも同様です。
 
D列は何も入っていなくて空白列で作業列としていただいてもかまいません。
 
私には難しく、ご教授いただきたいです。
よろしくお願いいたします。

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

●作業列を使う方法
  
 G列に名前ごとの累計列
  
     A    B   C D    E    F G
 1 くらす なまえ 数量   なまえ クラス  
 2   K1 りんご   4   いちご   M2 4
 3   T5 バナナ   1   バナナ   T5 1
 4   M2 いちご   2   いちご   M2 2
 5   K2 ぶどう   1   りんご   K1 1
 6   C7 バナナ   3   バナナ   C7 4
 7   T2 ぶどう   3   バナナ   C7 4
 8   M4 メロン   1   りんご   K1 1
 9              ぶどう   K2  
10              ぶどう   T2  
11              りんご   K1  
12              ぶどう   T2  
13              バナナ   C7  
14              メロン   M4  
15              りんご   K1  
16              ぶどう   T2  
  
G2
=SUMIF(B$2:B2,B2,C$2:C2)
下方向・↓ 
F2
=XLOOKUP(COUNTIF(E$2:E2,E2),G$2:G$50/(B$2:B$50=E2),A$2:A$50,"",1)
下方向・↓
  
●作業列を使わない方法
  
     A    B   C D    E    F
 1 くらす なまえ 数量   なまえ クラス
 2   K1 りんご   4   いちご   M2
 3   T5 バナナ   1   バナナ   T5
 4   M2 いちご   2   いちご   M2
 5   K2 ぶどう   1   りんご   K1
 6   C7 バナナ   3   バナナ   C7
 7   T2 ぶどう   3   バナナ   C7
 8   M4 メロン   1   りんご   K1
 9              ぶどう   K2
10              ぶどう   T2
11              りんご   K1
12              ぶどう   T2
13              バナナ   C7
14              メロン   M4
15              りんご   K1
16              ぶどう   T2
  
F2
=LET(x,A$2:C$50,a,INDEX(x,,1),b,INDEX(x,,2),c,INDEX(x,,3),
m,MMULT(N(ROW(b)>=TRANSPOSE(ROW(b))),c*(b=E2)),
XLOOKUP(COUNTIF(E$2:E2,E2),m/(b=E2),a,"",1))
下方向・↓
 

投稿日時: 24/12/03 09:09:23
投稿者: JIRO-KUN

んなっと様
ありがとうございます。
 
どちらの方法もできました。
 
LET関数を調べてみたのですが理解するのに難しく、
 
「=LET(x,A$2:C$50・・・・」この"x"の意味はなんでしょうか。
(x,,1)と(x,,2)と(x,,3)の意味もよろしければ。
 
調べて理解が難しかったので回答していただいても
またその回答を理解できればいいのですが・・・。

回答
投稿日時: 24/12/03 09:30:08
投稿者: んなっと

これでよかった。
=LET(x,A$2:C$50,a,INDEX(x,,1),b,INDEX(x,,2),c,INDEX(x,,3),
m,MMULT(N(ROW(b)>=TRANSPOSE(ROW(b))),c*(b=E2)),
XLOOKUP(COUNTIF(E$2:E2,E2),m,a,"",1))
  
2021だと累計を求めるのにSCANが使えなく、MMULTを使っていて難しい。
LETなども含めて説明は拒否します。自分で勉強しましょう。

投稿日時: 24/12/03 13:44:52
投稿者: JIRO-KUN

んなっと様
 
・・・m/(b=E2),a,"",1))
これが
・・・m,a,"",1))
これに変更ですね。
 
ありがとうございました。