Excel (一般機能)

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

 
(Windows 7 Professional : Excel 2010)
LOOKUP関数で除外する場合
投稿日時: 18/11/24 13:22:45
投稿者: ラングドシャ

お願いいたします。
以前こちらで教えていただいたLOOKUP関数をつかって抽出しています。
 
作業シートのA1にナンバーを入れると、itemlistから抽出してくるといった関数内容です。
=IF(ISNA(MATCH($A1,[itemlist.xlsx]itemlist!$A$1:$A$65536,0)),"",LOOKUP($A1,[itemlist.xlsx]itemlist!$A$1:$B$65536))
 
itemlistのナンバーから区分を抽出してくれます。アルファベット順で最後のものを抽出しています。
今まではA:Bの範囲しかなかったので、作業シートに100-20を入れると[B]が
200-10を入れると[C]が抽出されます。
 
今回itemlistに「確認」項目が増え、確認が0のものだけを抽出の対象にしたいのです。
 
作業シートにナンバーが
100-10 なら A
100-20 なら B
200-10 なら C
300-10 なら A
400-10 なら A
 
という結果を得たいのですが、どのように関数を変更すればよいでしょうか?
よろしくお願いいたします
 
<itemlist>

	A	  B    C
1	ナンバー 区分   確認
2	100-10	  A	   0
3	100-20	  A	   1
4	100-20	  B	   0
5	200-10	  A	   1
6	200-10   B	   1
7	200-10	  C	   0
8	300-10	  A	   0
9	300-10	  B	   1
10	400-10	  A     0
11	400-10	  B	   1
12	400-10	  C     1

回答
投稿日時: 18/11/24 15:41:28
投稿者: んなっと

=LOOKUP(1,0/([itemlist.xlsx]itemlist!A$2:A$1000=A1)/([itemlist.xlsx]itemlist!C$2:C$1000=0),[itemlist.xlsx]itemlist!B$2:B$1000)
 
候補が複数あるときは...
 
      A   B   C
 1 ナンバー 区分 確認
 2  100-10   A   0
 3  100-20   A   1
 4  100-20   B   0
 5  200-10   A   1
 6  200-10   B   0
 7  200-10   C   0
 8  300-10   A   0
 9  300-10   B   1
10  400-10   A   0
11  400-10   B   0
12  400-10   C   0
 
    A B C D
1 100-10 A   
2 100-20 B   
3 200-10 B C  
4 300-10 A   
5 400-10 A B C
 
B1
=IFERROR(INDEX([itemlist.xlsx]itemlist!$B:$B,AGGREGATE(15,6,ROW($2:$1000)/([itemlist.xlsx]itemlist!$A$2:$A$1000=$A1)/([itemlist.xlsx]itemlist!$C$2:$C$1000=0),COLUMN(A1))),"")
右方向・→下方向・↓

投稿日時: 18/11/26 15:38:42
投稿者: ラングドシャ

んなっと様
 
ありがとうございます。
まだ試すことができておりませんので取り急ぎお礼まで。

投稿日時: 18/11/27 11:22:11
投稿者: ラングドシャ

んなっと様
 
ありがとうございました。うまく表示できました。
現在のところ、表示は1件なので1つ目の関数で間に合いますが、今後変更があるかもしれませんので
メモしておきます。
 
ありがとうございました。