最大1万円超分の電子書籍プレゼント♪

いつもお世話になっています。
行き詰まってしまったので、皆様よろしくお願いします。

Excel 2017
Windows XP

Sheet1に集計シート
Sheet2に元となるデータがあります。
表はa~g列までありc列からcountif関数等が入っています。

Sheet1のa列 検索文字
Sheet1のb列 vlookupでsheet2から出した結果
Sheet1のc列 if(countif(b3,"*チョコ" ),"チョコ","その他"
.
.
.
やりたいのはb列にvlookupを出すのではなく、
直接検索値をvlookにしたいのです。
イメージとしては if(countif(vlookup(省略)),"*チョコ" ),"チョコ","その他" にしたいです。
If関数で if(vlookup)="チョコ","チョコ","その他" なら出来たのですが、アフタリスクを使うとエラーになるようで
どうぞアドバイスよろしくお願いします。

質問者からの補足コメント

  • 失礼しました。
    エラーになったこともあり、省略していました。
    実際はもっと複雑ですが、簡単に内容を書かせていただきます。

    Sheet1 a列 品番
    Sheet1 b列 vlookup(a3,sheet2!a:e,2,false)
    Sheet1 c列 if(countif,b3,"*チョコ"),チョコ,その他)

    Sheet2 a列 品番
    Sheet2 b列 種類1(スイス製チョコ、フランス製チョコ、フランス製クッキーなど書いてあります)

    これを元にb列に直で結果を求めたいです。
    理想図
    if(countif(vlookup(a3,sheet2!a:e,2,false),"*チョコ" ),"チョコ","その他"

    よろしくお願いします。

    No.1の回答に寄せられた補足コメントです。 補足日時:2018/04/03 15:58
gooドクター

A 回答 (4件)

こんにちは



COUNTIF関数の第一引数はセル範囲です。(単数セルでも可)
一方でVLOOKUPの結果はセルの値(今回は文字列)を返しますので、
 COUNTIF( 文字列, 検索文字 )
という形式になってしまい、エラーになってしまいます。

解決方法は二通り考えられます。
1)文字列内の検索処理に変更して、COUNTIFの代わりにFIND関数を利用する
2)引数としてVLOOKUPの代わりにセル参照を返す関数を利用する

1)の方法の場合、FIND関数ではワイルドカード(*)は不要になりますが、その代わり見つからない場合にはエラー値が返されますので、判定方法を変える必要があります。
 =IF(ISERROR(FIND("チョコ",VLOOKUP(~~~))),"他","チョコ")
のような感じで、「~~~」のところには現在の検索内容を入れてください。

2)のセル参照の取得は、通常の計算ではあまり行わないと思いますので、少々わかりにくいかもしれませんが…
上述しましたように、VLOOKUPでは直接セルの値を取得してしまいますので、MATCH関数で検索し、表の左上セル位置からOFFSET関数で検索結果のセル参照を取得するようにすれば、COUNTIF関数内でも利用できるようになります。
 COUNTIF(OFFSET(表の左上セル,MATCH(~検索内容~)-1,列の位置), 検索文字)
といった要領で計算すれば、ご提示の形式のままで処理が可能になります。
「表の左上セル」や「~検索内容~」、「列の位置」などは現状のVLOOKUPと同等になるように値を設定しておく必要があります。

方法は少し違いますが、1)、2)とも結果は同様ですので、多分、1)の方が式も短くなると思いますし、わかりやすいのではないかと想像します。
    • good
    • 1
この回答へのお礼

ありがとう

私のつたない質問に丁寧に答えていただき、ありがとうございました。
希望通りの結果になり、今後も活用させていただきます。
本当にありがとうございました!

お礼日時:2018/04/03 19:31

》 Excel 2017


》 Windows XP
え、もう Excel 2017が市販されてるの?それをXPで。
    • good
    • 0

>if(countif,b3,"*チョコ"),チョコ,その他)


転記するならするでちゃんと書いてくださいね。この式おかしいですよね?

さて、*チョコということはチョコは必ず後ろにつくと判断して

=IF(RIGHT(VLOOKUP(A3,Sheet2!$A:$E,2,FALSE),3)="チョコ","チョコ","その他")

とかでは如何でしょうか?
もっとすっきりした回答が他につきそうな気がしますが。
    • good
    • 1

わかりづらいので、


(省略)とかせずに、式をきちんと書いてください。
それから、データも具体的にお願いします。
何が間違っているかもわかっていないのに勝手に式を省略して、そこに原因があったらどうするんですか?
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング