[[20160209122137]] 『条件付き検索方法』(ケン) ページの最後に飛ぶ

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

 

『条件付き検索方法』(ケン)

A列に製品のシリアル番号
B列に管理用の番号
C列に任意の製品のシリアル番号を入力する欄
D列でC列の値をA列から検索する関数
E列にD列で見つかったA列の値の隣のB列の値
を表示する関数を作りたいのですが

【A列】     【B列】   【C列】    【D列】    【E列】
MA0123   HP-001  S:MA0128:D   NG      NG
MA0124   HP-002  S:MA0129:D    NG     NG
MA0125   HP-003   S:MA0131:D   NG       NG
MA0126   HP-004   S:MA0123:D   MA0123    HP-001

と検索結果がなるような表でまとめたいのですが
VlookUPでは不可能なのでしょうか?
※C列には"-"や":"が含まれた状態で入力するので
 A列のデータが含まれた文字列を検索する必要があります。

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


 A列の文字数は6ケタ固定ですか?

 C列は必ずS:と:Dで挟まれるのですか?

 上だけの条件であれば、
 D1=MID(C1,3,6)でよいと思われますが(E列でNGすれば、D列はしなくてもいいと思いますが)

 "-"もあるようですが、他にどのような記入方法が有りますか?
(稲葉) 2016/02/09(火) 12:40

ありがとうございます。

A列の文字数は6ケタ固定ですか? A列は9ケタの文字数固定です。

C列は必ずS:と:Dで挟まれるのですか?

必ずしもS:と:Dで挟まれることはないです。桁数も30ケタほどあります。  ただし、A列の文字列9ケタが連続でふくまれています。
(ケン) 2016/02/09(火) 12:52

 2行目からデータだとして、

 D2 =IFERROR(LOOKUP(1,0/FIND($A$2:$A$5,C2),$A$2:$A$5),"NG")

 下へコピー

 こういうこと?
(笑) 2016/02/09(火) 13:06

  D1セルに
 =IFERROR(TEXT(INDEX(A$1:A$100,MATCH(1,INDEX(COUNTIF($C1,"*"&$A$1:$A$100&"*"),0),0)),";;!N!G"),"")
 と入力して下および右へフィルコピーではどうか?

 なお、データが最大100行目までに対応している。

 もっとデータがある場合は式中の「$100」部分を大きくしてくれ。

 追記
 C列の値にA列の値が複数含まれていた場合にはより上にあるものを返す。
(ねむねむ) 2016/02/09(火) 13:10

 一応確認。

 C列のシリアル番号は何文字目から始まるかは不定、なんだよね?
 その前提で回答したんだけど。

 それとも必ず3文字目から始まってるのかな?
(笑) 2016/02/09(火) 13:18

ありがとうございます。

C列のシリアル番号は何文字目から始まるかは不定、なんだよね?
その前提で回答したんだけど。
⇒ご認識の通り、不定です。
(ケン) 2016/02/09(火) 13:36


 ご丁寧な返事、痛み入ります。
 で、回答の式は試してもらったんですかね?
 結果は如何に?

 > D2 =IFERROR(LOOKUP(1,0/FIND($A$2:$A$5,C2),$A$2:$A$5),"NG")

 ↑ はD列の式。E列は普通にVLOOKUPで。

 E2 =IF(D2="NG",D2,VLOOKUP(D2,$A$2:$B$5,2,FALSE))
 とか
 E2 =IFERROR(VLOOKUP(D2,$A$2:$B$5,2,FALSE),"NG")
 
 
 E列も、D列の式で済ませるんだったら

 D2 =IFERROR(LOOKUP(1,0/FIND($A$2:$A$5,$C2),A$2:A$5),"NG")
                    ~~~  ~~~~~~~
 波線部を変更して右と下にコピー

 こんな感じ。
(笑) 2016/02/09(火) 15:04

コメント返信:

[ 一覧(最新更新順) ]


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