Excel、リンク元に指定文字列の存在を調べたい
失礼いたします。
次のような関数式を用いて管理表を作りたいのです。
=IF(? ? ? ? ? ?,VLOOKUP(A3&B3,\○○○\△△△\[XXXXX]sheet1!$A$2:$G$20,4,false),"未入力")
( ※ 「○○○」の前は\ではなく\\が正しいかもしれませんが、その点は大目に見ていただきたいです)
長い関数式ですので、念のため解説をしておきます。
○ もし「? ? ? ? ? ?」だったら、「XXXXX」というエクセルブックの中の、「sheet1」というシートの中の、「A2~G20」の範囲の1列目(すなわち「A」の列)に、「A3&B3」と一致する文字列のセルから右に3列移動したセルを表示してください。
○ もし「? ? ? ? ? ?」でなかったら、「未入力」と表示してください。
ところがここで問題なのが、「XXXXX」というエクセルブックの中の、「sheet1」というシートの中の、「A2~G20」の範囲の1列目(すなわち「A」の列)に、「A3&B3」と一致する文字列のセルが存在しない場合があるのです。そこで、
○ もし「? ? ? ? ? ?」だったら、~~
○ もし「? ? ? ? ? ?」でなかったら、~~
の「? ? ? ? ? ?」には、「XXXXX」というエクセルブックの中の、「sheet1」というシートの中の「A」の列に、「A3&B3」と一致する文字列のセルが存在する、という関数を入れたいのです。そうすれば、
1.(1つ以上)存在する → TRUEを返す → VLOOKUP関数により表示される
2.存在しない → FALSEを返す → 「未入力」と表示される
というように管理できます。
ところが、私の現在の知識では、(1つ以上)存在すればTRUEを返す関数として、COUNTIF関数しか知らず、使いこなせません。
そこでCOUNTIF関数を使いました。次のような式です。
COUNTIF(\○○○\△△△\[XXXXX]sheet1!$A:$A,A3&"営業")>0
関数式のすべてを書けば、
=IFCOUNTIF(\○○○\△△△\[XXXXX]sheet1!$A:$A,A3&"営業")>0
,VLOOKUP(A3&B3,\○○○\△△△\[XXXXX]sheet1!$A$2:$G$20,4,false),"未入力")
( ※ VLOOKUP関数の中の「B3」には、「営業」と入力されることもあれば、ほかの文字列が入力されることもあります)
すると、
○ 通常 : 「#VALUE」が表示されてしまいます。
○ 「XXXXX」というエクセルブックを開く : 実際に入力されているもの、もしくは「未入力」が表示されます。
そして、「#VALUE」が表示される理由を追いかけますと、COUNTIF関数の中の「A3」の箇所だけに下線が引かれ、この「A3」のためにエラーになっているのだとエクセルは教えてくれます。
以上を踏まえ、質問させていただきます。
1. COUNTIF関数は、リンクが混在する関数には適さないのでしょうか。
2. COUNTIF関数以外に、「A」列に「A3&"営業"」と一致する文字列が存在するかどうかを検索する関数があるとすれば、何でしょうか。
3. 現在、しかたなく「=VLOOKUP(~~~~)」だけにしているのですが、「未入力」と表示させたいところに「#N/A」が表示されます。これをほかの方法で、「#N/A」でなく「未入力」と表示させる方法があるとすれば、何でしょうか。
長文失礼いたしました。
お礼
問題解決してからお礼をと思っていたので、 遅くなってしまってすいません。 結局、CStringのFormatで作成することができました。 ちょっと手近な所からヒントを得るのが難しい状態なので、 早い回答でヒントにもなり、とても助かりました。精神的にも…(笑)。 初VC++にもかかわらず余裕がないので また何か思わず吹き出してしまいそうな質問を してしまうかも知れませんが、その時はよろしくお願いします。