[[20161231114109]] 『VLOOKUPで検査値が複数の場合』(まゆら) ページの最後に飛ぶ

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

 

『VLOOKUPで検査値が複数の場合』(まゆら)

 VLOOKUPで検査値が複数の場合、A列にはNo1〜100 B列には個人名 

 NO  個人名
 1 ○山 ○夫   1 ○山 ○夫
 2 ○の ○子   3 ○の ○子
 3 ○下 ○也     ○下 ○也
 4
 5

 例えばC2に [1]と入力、C3に[3]と入力すれば
 No1からNo3までの...
 D2 に ○山 ○夫 
 D3 に ○の ○子
 D4 に ○下 ○也

 例えばC2だけに [2]と入力すれば
 D2 に ○の ○子 

 このようなことが可能でしょうか?出来ましたら教えていただけますでしょうか?
 よろしくお願いします。

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


 A列 1行目から 1,2,3,・・・・ という連番という、めちゃくちゃ限定版ですが。

 D1 : =IF(C$2-C$1+1>=ROW(),INDEX(B:B,$C$1+ROW()-1),"")

 これを下にフィルコピー。

 A列が、必ずしも 1 から始まっていないとか、連番ではなくとびとびに番号が振られている ということなら
 上級者さんの回答をお待ちください。

 あっ!!

 C2 にだけ入力する場合もあるということを無視していました。

(β) 2016/12/31(土) 12:33


 A列・B列は、1行目が見出し、2行目からデータだとして

 本当にA列が「1〜100」の連番なら

 ■VLOOKUP編

 D2 =IF($C$2="","",IF($C$2+ROW(A1)-1>MAX($C$2:$C$3),"",VLOOKUP($C$2+ROW(A1)-1,$A$2:$B$101,2,FALSE)))

 ■INDEX編

 D2 =IF($C$2="","",IF($C$2+ROW(A1)-1>MAX($C$2:$C$3),"",INDEX($B$2:$B$101,$C$2+ROW(A1)-1)))

 下コピー

 どんな配置であっても ROW(A1) はそのままにしておくこと。
(笑) 2016/12/31(土) 12:47

 とりあえず 私がアップした式に C2 のみ入力ありうるという条件を入れておきます。

 =IF(MAX(C$2-C$1+1,1)>=ROW(),INDEX(B:B,$C$1+ROW()-1),"")

(β) 2016/12/31(土) 12:51


βさんと笑さん どうもありがとう。

実際には個人名以外にも取り出したいデータが別の列にもありますが、お二人の数式で

いろいろさわってみて見事に!取り出せました。

これで年明け楽しくなりそうです。

(まゆら) 2016/12/31(土) 14:25


コメント返信:

[ 一覧(最新更新順) ]


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