• ベストアンサー

IF、COUNTIF、VLOOKUPで「あいまい文字」を検索

Sheet2のセル(J1)にSheet1のA列のデータを入力することでSheet1に入力してある他の列のデータをSheet2の任意のセルに表示させているのですが、ある文字(k)を含むデータの場合だけ異なる表示(ABC)をさせたいのですが、下記数式では「正しくない」と叱られています。 数式: =IF(COUNTIF(VLOOKUP($J$1,Sheet1!$A$2:$L$200,2,FALSE),"*k*"),"ABC",(VLOOKUP($J$1,Sheet1!$A$2:$L$210,2,FALSE))) Sheet1: 番号 サブNo. DATA1 DATA2 ・・・ 100  k321  あ   い ・・・ 101   321  う   え 102  k456  お   か 103   789  き   く のようなデータシートです。 上記数式をどのように直せば「サブNo.」に「k」を含むデータを「ABC」と表示させ、含まない時は「サブNo.」を表示させられるのでしょうか、ご教授ください。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

=IF(ISERROR(FIND("k",VLOOKUP($J$1,Sheet1!$A$2:$L$200,2,FALSE))),(VLOOKUP($J$1,Sheet1!$A$2:$L$210,2,FALSE)),"ABC")

mfno
質問者

お礼

ありがとうございました、思ったとおりの結果が出ました。ホントにありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.4

IF関数は、ストレートにはワイルドカードに*は使えない。 CountIFは使えます。 k321 321 k456 789 12K で=COUNTIF(B1:B5,"*k*")で3になります。 例えばF1に =COUNTIF(B1,"*k*") F5まで複写すると 100 k321 あ い 1 101 321 う え 0 102 k456 お か 1 103 789 き く 0 112 12K お え 1 となります。ですから =IF(COUNTIF(B1,"*k*")=1,"ABC",VLOOKUP(・・・)) でどうですか。 FIND関数はワイルドカードは使えないが、SEARCH関数は使えます。 なおKは半角・全角に注意してください。上記例では半角に統一。

mfno
質問者

お礼

ありがとうございました。#3の方のご回答で思ったとおりの結果を出すことが出来ました。 お忙しいところお手数おかけしました、ありがとうございました。

すると、全ての回答が全文表示されます。
noname#61366
noname#61366
回答No.2

もっと詳しい方がお応えすると良いと思うのですが,お急ぎなのに,回答が寄せられていないので... "*k*"と指定してしまうと,*は1つの文字として認識されます。 それにワイルドカードは使用できなかったように思うのですが.... vlookupは検索条件をtrueにすると,あいまい検索になったように記憶しております。 補足をお願いしたいのですが,k321は文字列,321は数値として認識できるのでしょうか?

mfno
質問者

お礼

お忙しいところ親身にご回答頂き、ありがとうございます。 #3の方の計算式で思ってたとおりの結果を出すことができました。ありがとうございました。 ちなみにk321は文字列、321は数値です。 ありがとうございました。

すると、全ての回答が全文表示されます。
  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

IF(Find(Vlookup(~),"*k")>0 ,"ABC",Vlookup(~))

mfno
質問者

お礼

早速のご回答ありがとうございます。 しかしエラーがでてしまいました。

すると、全ての回答が全文表示されます。

関連するQ&A