こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルマクロについて。検索ボタン。

すいませんがエクセルのマクロについてご教授ください。

今私がしたいことは下記の通りです。
メーカー名入力セルと商品名入力セルを設けています。
例えばメーカー名をパナソニックと入力して検索をすると商品名が一覧で出てきたり洗濯機という商品で検索するとそのメーカーが一覧ででてくるようにしたいです。
検索したら全てあてはまるキーワードがでてくるようにしたいのですがどうすればいいでしょうか?
VLOOKUPだと検索すると1件しかヒットしないので検索ボタンを作りたいと考えました。

ちなみに A1セル メーカー B1セル商品名とあって後は下にずらっと300行位資料を作っています。
例えば C1セルにメーカー名入力セル、D1セルに商品名入力セルを設けE列にマクロで"検索ボタン"を作成し、
C1やD1に入力をしてあてはまるキーワードがあったなら全て表示したいような事をしたい場合にはどうすれば良いですか?

紙ベースでお客様に持って行ったところ大変好評だったのですが紙じゃなくてエクセルで検索できるようにしたら社内でも好評だと!と言われました。
検索と置き換えでも良いのですがお客様向けの資料として分かりやすいようにボタンを使った検索を提案したいのです。
アクセスかマクロしかないと思っているのですがまだまだ私にとっては未知の世界ですのでご教授ください。

申し訳ございませんが宜しくお願い致します。

投稿日時 - 2014-04-10 23:00:32

QNo.8549695

すぐに回答ほしいです

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

>A1セル メーカー B1セル商品名とあって後は下にずらっと300行位資料を作っています。
例えば C1セルにメーカー名入力セル、D1セルに商品名入力セルを設けE列にマクロで"検索ボタン"を作成し、C1やD1に入力をしてあてはまるキーワードがあったなら全て表示したいような事をしたい場合にはどうすれば良いですか?

この条件なら関数で対応するほうが簡単です。

C2セル以下にA列にC1セルの値のあるB列の文字列を抽出するなら、以下の式を入力して下方向に適当数オートフィルします。

=INDEX(B:B,SMALL(INDEX(($A$2:$A$300<>$C$1)*1000+ROW($A$2:$A$300),),ROW(1:1)))&""

同様にB列にD1セルの値があるA列のデータは以下の式になります。

=INDEX(A:A,SMALL(INDEX(($B$2:$B$300<>$D$1)*1000+ROW($B$2:$B$300),),ROW(1:1)))&""

マクロで対応する場合は、マクロの記録を利用して、オートフィルタで商品名を絞り込み、そのメーカー名の列をコピーする操作を行い、そのコードの検索値の部分をセルの値に修正するコードを作成してください。

投稿日時 - 2014-04-11 00:47:39

お礼

ご回答ありがとうございます、コピーしたのですがやり方が間違っているようでうまく行きません。
=INDEX(B:B,SMALL(INDEX(($A$2:$A$300<>$C$1)*1000+ROW($A$2:$A$300),),ROW(1:1)))&""はどこのセルに入力すれば良いですか?
A1セル メーカー名 B1セル商品名というセルでA2、B2から下にずらっと300行位資料を作っています。
C1セルにメーカー名検索セル、D1セルに商品名検索セルを設けると検索できるようにしたい実際の資料がなくて説明しずらく申し訳ございません。 ご教授ください。

投稿日時 - 2014-04-12 22:53:13

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問