Excel (一般機能)

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

 
(Windows 10全般 : Microsoft 365)
〇が表示される行のみに値を反映させたい
投稿日時: 23/02/04 13:15:19
投稿者: Ikesp

○が表示されている行のみに数式反映させたいです。
  
今は別のシートから、○を表示させる式と、それが該当しなかったら別の表から値を参照するようにしています。
今は全てのセルに値が表示されていますが、○がある行のみに表示させたいです。
何か良い案はございませんか?
  
B3→F3↓
IFERROR(XLOOKUP(1,('シート2'!$B$3:$B$500=$A3)*('シート2'!$F$2:$F$500=B$2),
XLOOKUP(LOOKUP("ーー",)$B$1:$B$1),'シート2'!$1:$1,シート2'!$3:$500)&"",
XLOOKUP(B$2,'シート3'!$B$2:$F$2,$B$3:$F$3,"",,1)),"")
  
(現在)
シート1
   A  B  C  D  E  F    G  H
1     チーム1          チーム2
2     あ い う え お     あ い う え お
3  a  1 2 3 4 ○    1 2 3 4 5
4  b  1 2 3 4 5    1 2 3 4 ○
5  c  3 4 ○ 6 7    3 4 5 6 7
6  d  2 3 4 5 6    2 3 4 5 6
 
シート3
   A  B  C  D  E  F    
1     チーム1         
2     あ い う え お    
3  a  1 2 3 4 5   
4  b  1 2 3 4 5    
5  c  3 4 5 6 7   
6  d  2 3 4 5 6 
 
  
(こうしたい)
シート1
   A  B  C  D  E  F    G  H
1     チーム1          チーム2
2     あ い う え お     あ い う え お
3  a  1 2 3 4 ○    
4  b             1 2 3 4 ○
5  c  3 4 ○ 6 7  
6  d  
 
  

回答
投稿日時: 23/02/04 14:34:00
投稿者: んなっと

シート2の構成が不明なので、勝手に想像して回答します。
 
●シート2
 
  B  C  D  E  F
 1   チ1 チ2 チ3  
 2           
 3 a  1  1  1 あ
 4 d  5  5  2 え
 5 b  4  4    え
 6 c  7  7  1 お
 7 d  6  6  1 お
 8 a  ○  5  2 お
 9 a  3  3  4 う
10 d  3  3    い
11 a  4  4    え
12 d  2  2  4 あ
13 b  5  ○  5 お
14 b  1  1  1 あ
15 b  2  2  3 い
16 c  4  4  1 い
17 a  2  2  1 い
18 c  3  3    あ
19 c  ○  5    う
20 d  4  4  5 う
 
●シート1
 
  A  B  C  D  E  F  G  H  I  J  K
1   チ1         チ2        
2   あ い う え お  あ い う え お
3 a  1  2  3  4 ○           
4 b             1  2    4 ○
5 c  3  4 ○    7           
6 d                     
 
B3
=LET(a,シート2!$B$3:$B$500=$A3,b,XLOOKUP(LOOKUP("ーー",$B$1:B$1),シート2!$1:$1,シート2!$3:$500),c,シート2!$F$3:$F$500=B$2,IFERROR(IF(ROWS(FILTER(a,a*(b="○"))),XLOOKUP(1,a*c,b&""),""),""))
右方向・→下方向・↓
 
シート3は無関係だと決めつけてみました。

投稿日時: 23/02/04 15:15:42
投稿者: Ikesp

ありがとうございます。
すみません、シート2の記載が漏れていました。
 
シート2
   A    B     C     D
1     チーム1   チーム2  チーム3        
2      
3  a お 〇   
4  b お      〇   
5  c う 〇
6  d え
7  e あ 

回答
投稿日時: 23/02/04 16:07:41
投稿者: んなっと

しかし質問がわかりにくい。
●シート2
 
  A  B  C  D  E
1     チ1 チ2 チ3
2           
3 a お  ○     
4 b お    ○   
5 c う  ○     
6 d え        
7 e あ        
 
●シート3
 
  A  B  C  D  E  F
1            
2   あ い う え お
3 a  1  2  3  4  5
4 b  1  2  3  4  5
5 c  3  4  5  6  7
6 d  2  3  4  5  6
 
●シート1
 
  A  B  C  D  E  F  G  H  I  J  K
1   チ1         チ2        
2   あ い う え お  あ い う え お
3 a  1  2  3  4 ○           
4 b             1  2  3  4 ○
5 c  3  4 ○  6  7           
6 d                     
 
B3
=LET(a,シート2!$A$3:$A$500=$A3,b,XLOOKUP(LOOKUP("ーー",$B$1:B$1),シート2!$1:$1,シート2!$3:$500),c,シート2!$B$3:$B$500=B$2,IF(ISNA(XMATCH(1,a*(b="○"))),"",IF(ISNA(XMATCH(1,a*(b="○")*c)),XLOOKUP(B$2,シート3!$B$2:$F$2,シート3!$B3:$F3,""),"○")))

回答
投稿日時: 23/02/05 01:56:28
投稿者: んなっと

B3
=LET(a,$A3:$A7,b,B2:F2,c,XLOOKUP(B1,シート2!$1:$1,シート2!$3:$500),d,シート2!$A3:$A500,e,シート2!$B3:$B500,MAKEARRAY(ROWS(a),COLUMNS(b),LAMBDA(x,y,IF(ISNA(XMATCH(1,(d=INDEX(a,x))*(c="○"))),"",LET(f,1/(XLOOKUP(1,(d=INDEX(a,x))*(e=INDEX(b,y)),c)="○"),IF(ISERROR(f),INDEX(シート3!$B$3:$F$7,x,y),"○"))))))
  
としてB3:F7を選択、右方向にコピーという方法もありそうです

投稿日時: 23/02/05 19:59:00
投稿者: Ikesp

自分がまだ知らない関数が沢山あり勉強になります。
両方試してみましたがきちんと反映されました。ありがとうございます。