[[20201008101921]] 『vlookup で検索範囲にカンマ区切りされた文字を完』(リンキン) ページの最後に飛ぶ

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

 

『vlookup で検索範囲にカンマ区切りされた文字を完全一致で検索方法』(リンキン)

初めてまして。
vlookup で質問です
a1セルに検索値c7があります。
b1セルにカンマ区切りされた文字c8,c9あります。
c1セルに-区切りされたc7-c10があります
d1セルに抽出させたい文字cccがあります。
e1セルは関数結果を抽出するセルです。

vlookup で関数を組むにはどうしたら良いでしょうか?
ちなみに検索値に対して完全一致で抽出したいです。
今のところ部分一致ではできたのですが。
他のセルにpc7など部分一致する場合も抽出してしまいます。

すみませんがお願いします。

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


 e1セルにはどんな値が抜き出されるのだろうか?
(ねむねむ) 2020/10/08(木) 10:36

 状況説明がちょっと変ではないですか?

 全部1行目の話なら、VLOOKUP関数を使う必然性を感じないです。

(半平太) 2020/10/08(木) 10:40


 質問タイトルからすると、検索するのはB列ですよね?
 では C列は何? 質問に関係あるんですか?

 >今のところ部分一致ではできたのですが。
 その式を提示してください。

 一応・・・
 >他のセルにpc7など部分一致する場合も抽出してしまいます。
 これが回避できればいいのなら

 検索するのはB列だとして
 ※VLOOKUPではなく LOOKUP

 E1 =IFERROR(LOOKUP(1,0/FIND(","&A1&",",","&$B$1:$B$10&","),$D$1:$D$10),"")

 参考まで
(笑) 2020/10/08(木) 11:30

説明不足ですみません。
行は一行ではないです。
後、検索範囲はb、c列です。
e列は検索値を検索範囲内で検索して完全一致した時にその行にあるd列
にある値を抽出します。
お願いします。

(リンキン) 2020/10/08(木) 12:58


 >c7-c10
 というのはc7、c8、c9、c10すべてと合致とみなすのだろうか?
 それともc7とc10のみ合致と見るのだろうか?
 あと、大文字・小文字(A・a)は別としてみるのだろうか?
(ねむねむ) 2020/10/08(木) 13:05

 >>今のところ部分一致ではできたのですが。
 >その式を提示してください。
 ・・・と言ってるんですけど? 

 一応・・・
 E1 =IFERROR(LOOKUP(1,0/FIND(","&A1&",",","&$B$1:$B$10&","&SUBSTITUTE($C$1:$C$10,"-",",")&","),$D$1:$D$10),"")

 こういうこと?
(笑) 2020/10/08(木) 13:20 14:03 余計なスペース削除

(笑)様
式を掲示遅れてすみません。
=IFERROR(IFERROR(VLOOKUP("*"&A2&"*",$H$2:$J$1000,3,0),VLOOKUP("*"&A2&"*",$I$2:$J$800,2,FALSE)),"")です。
ちなみに(笑)様のご教授いただいた数式で試した所、できたのはできたのですが、
ここで1点質問があります。
B列にカンマ区切りの文字列と-区切りの文字列があった場合はどうすればよいでしょうか?
B1列にC7,C16,C17,C19,C28-C3などの場合です。
(ねむねむ)様
 >c7-c10
 というのはc7、c8、c9、c10すべてと合致とみなすのだろうか?
 それともc7とc10のみ合致と見るのだろうか?
 あと、大文字・小文字(A・a)は別としてみるのだろうか?
すべてではなく単体です。C7に対し検索範囲にC7があればその隣の値を返す関数です。
あと大文字、小文字ですが書き方が悪く申しございませんが、基本すべて大文字ですので大文字のみで見ていますので区別はしていません。
お願いします。

(リンキン) 2020/10/08(木) 19:49


(笑)様
ちなみにC7,C16,C17,C19,C28-C32やC28-C32,C7,C16,C17,C19の場合もあります。
お願いします。

(リンキン) 2020/10/08(木) 20:13


 =IF(A2="","",IFERROR(LOOKUP(1,0/FIND(","&A2&",",SUBSTITUTE(","&$H$2:$H$1000&","&$I$2:$I$1000&",","-",",")),$J$2:$J$1000),""))

 こういうこと?

 H列とI列のデータ量が違っても、範囲は多い方に合わせること。

 以上
(笑) 2020/10/08(木) 23:17

 >初めてまして。
 初めてじゃないと思いますけどね。

[[20200930160811]]

 『間の文字列を求めるプログラム』の
 (よねこ)さんでしょう?

 そのスレッドは、
 C7,C16,C17,C19,C28-C30 と言う文字列があったとき、
 その間の C29 を取り出したい、という話でした。

 今回の質問の
 B列は、 その、表示上スキップされていた文字列
 C列は、  "ー"を含んだ、当初の文字列
 ということですね。
 で、検索は、そのいずれにも登場するものを等しく検索の対象にしたい、と。

 前のスレッドで、私は
 | 間にある文字列だけでなく、
 | 列挙方式にした場合の、カンマでひとつひとつを連結した文字列を
 | 返すようにしたほうがよいのではないですか?
 と問いかけたが、違いますとの話。

 そうであれば、別人を騙ってまた丸投げするんじゃなく、
 "-"を","に変換した上で、連結するくらい自分でするべきじゃないですか?

 それで、今回の検索にあたっては、
 ・検索文字列の前後に "*,"と",*"を意図的に付け、
 ・検索対象範囲の前後にも、","を付けてやれば、
 VLOOKUPで単純に完全一致の表引きができました。
 (既に 笑 さんから、式が提示されているとおりです。)

 もっと言えば、
      C3
     C16
     C17
     C19
     C28
     C29
     C30
 などと展開した表にしておけば、可読性も高いし、
 ワイルドカードを使用しなくても単純なVLOOKUPで済みますね。

 ちょっと気が付きましたので、参考までにコメントしておきます。

(γ) 2020/10/09(金) 07:22


コメント返信:

[ 一覧(最新更新順) ]


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