[[20170104141557]] 『0を無視して該当データを抽出する方法』(迷走中) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『0を無視して該当データを抽出する方法』(迷走中)

失礼いたします。
くだらない質問かもしれないのですが、全文検索しても全然理解できず、質問させていただきます。
下記のような4列の表があります。

No  大   小    該当
101  0   0
101  0   0
101  0   0
101  1   0    池田
101  0   0
102  0   0
102  1   0    武田
102  0   0
102  0   0
103  0   1    伊藤
103  0   0
104  0   0
104  0   0
104  0   1    大橋
104  0   0

それを別のシートで、101と入力すれば、池田と出力され、104と入力すれば、大橋と出力されるようにしたく、VLOOKUP関数で作成したのですが、それぞれのNoの先頭に該当のデータがあるわけでもなく、0しか出力されません。
上記の表は超簡略化した表で、実際は15000行ほど使用した表で、オートフィルタでは対応しきれず、なんとか関数で簡単に該当項目を抽出する方法はございますでしょうか?
お時間取らせて申し訳ありませんが、どうぞよろしくお願いいたします。

< 使用 Excel:Excel2010、使用 OS:Windows7 >


 大小ともに1の場合、および同じNo内で大小に1があるものはないとして。

 元のデータがSheet1でA列がNo、B列が大、C列が小、D列が該当で1行目が見出し、2行目からデータだとする。

 別シートのA1セルにNoを入力するとして。

 =IFERROR(INDEX(Sheet1!D$2:D$20000,MATCH(1,INDEX((Sheet1!A$2:A$20000=A1)*((Sheet1!B$2:B$20000=1)+(Sheet1!C$2:C$20000=1)),0),0)),"")

 上記式では元のデータが20000行目まで対応している。

(ねむねむ) 2017/01/04(水) 15:04


 ちょっと確認だけですけど、

 【Q1】
 ナンバーの各数字には、1か所だけ「該当」列に名前が入力されている。
 その名前を抽出したい、というのがやりたいこと?

 それとも例は簡略化して書いてるけど、実際は同じナンバーの該当列には何か所も名前が入力されていて、
 あくまで「大」または「小」が「1」になっているところの名前を抽出したい、ということ?
 その場合も条件に該当するのは各ナンバーそれぞれ1か所だけ?(複数あることはない?)

 【Q2】
 別シートに条件のナンバーを入力するのはどこか1つのセルだけ? 
 それとも複数入力する? 複数入力なら条件入力範囲は別シートのどこからどこまで?

 とりあえず以上です。
(笑) 2017/01/04(水) 16:01

返答遅くなり申し訳ないです。

Q1につきましては、前者で、ナンバーの各数字には、1か所だけ「該当」列に名前が入力います。
それを、抽出したいことが処理したいことです。

Q2につきましては、以下のようなシートがあります。
?の部分に数式を入れてしてみたのですが、未熟でできませんでした。

 No     該当
 101      ?
 102      ?
 103      ?
 104      ?

(迷走中) 2017/01/04(水) 16:45


ねむねむ様

的確なアドバイスを頂き有難うございました。

無事に処理ができました。

尋ねるのも申し訳ないような内容だったかもしれませんが、お時間割いて頂き有難うございました。

またの機会がございましたら、どうぞよろしくお願い致します。

(迷走中) 2017/01/04(水) 16:59


 解決したようですけど、

 元データを「ナンバー」と「該当」で昇順に並べ替えれば、
 ナンバーの先頭行に名前が来るので VLOOKUP でできますよね。
 それではダメなんですかね?

 並べ替え不可なら

 別シート(条件を最大何個入力するのか知りませんけど)

	A	B
1	No	該当
2	101	池田
3	102	武田 
4	103	伊藤 
5	104	大橋 

 ■LOOKUP編

 B2 =IF(A2="","",LOOKUP(1,0/((Sheet1!$A$2:$A$15000=A2)*(Sheet1!$D$2:$D$15000<>"")),Sheet1!$D$2:$D$15000))

 ■作業列編

 Sheet1(元データ)のE2に =IF(D2<>"",A2,"")  という式を入力し、下コピーしておく

 B2 =IF(A2="","",INDEX(Sheet1!D:D,MATCH(A2,Sheet1!E:E,0)))

 参考まで。
(笑) 2017/01/04(水) 17:17

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.