
検索関数を使って検索窓を作成したいんですが・・・
仕事でExcelを使っていて他の人に聞いても解決できなかったのでこちらでご質問させて頂きます。
質問内容は検索です。
データの範囲内にある数値、文字など、全てが対象になります。
条件は下記の通りです。
1.検索窓のようなセルに毎回関数など入力せず、文字や数字を入力するだけ。googleなどの検索窓と同じです。
2.検索結果は検索窓の右側に自動的に表示。検索内容を変更した時に自動的に反映される。
3.検索例
例1) 岡田 ←名前だけで検索
例2) 2010/01/20 ←日付で検索
例3) 岡田 A-102W ←名前と型番で検索
例4) 岡* ←ワイルドカードも使用可能
4.データ範囲はシートをまたぐこともあり。
つまり、A1というセルに文字を入力すればその文字に関する情報が一覧表示されるということです。
上記の条件でやりたいんですが、マクロやVBAなどは全くわかりませんので、
エクセルの関数のみで何とかならないでしょうか。
よろしくお願いします。

No.4ベストアンサー
- 回答日時:
次のようにしてはどうでしょう。
1行目は項目名でA1セルはNo,B1セルは伝票No、C1セルは日付、D1セルは担当者、E1セルは型番とします。それぞれのデータが下方に入力されているとします。
F列は作業列でF2セルには次の式を入力して下方にオートフィルドラッグします。
=IF(D2&E2=H$2,MAX(F$1:F1)+1,IF($H$4="","",IF(COUNTIF(INDEX(A:E,ROW(),$H$4),$H$2)>0,MAX(F$1:F1)+1,"")))
H1セルには検索と文字を入力しH2セルには検索したい伝票Noや日付、担当者名、型番などを入力します。なお、担当者と型番を組みで検索する場合には担当者名に続けて型番を入力します。
H4セルには次の式を入力します。
=IF(COUNTIF(A:A,H2)>0,1,"")&IF(COUNTIF(B:B,H2)>0,2,"")&IF(COUNTIF(C:C,H2)>0,3,"")&IF(COUNTIF(D:D,H2)>0,4,"")&IF(COUNTIF(E:E,H2)>0,5,"")
お求めの表はJ列からN列に表示させるとして1行目にはA1セルからE1セルまでの文字をコピーします。
J2セルには次の式を入力してN2セルまでオートフィルドラッグしたのちに下方にもオートフィルドラッグします。
=IF(COUNTIF($F:$F,ROW(A1))=0,"",INDEX($A:$E,MATCH(ROW(A1),$F:$F,0),COLUMN(A1)))
これでH2セルに検索したいデータを入力することで、該当するデータがJからN列に表示されます。
なお、作業に使われている列については非表示にする、セルについては文字の色を白にするなどのことをすればスッキリするでしょう。
シートが別にある場合にもご自分で工夫してみてください。
ありがとうございます!
KURUMITOさんに教えてもらったとおりにやったら思い通りのものが出来ました!
別シートは恐らく自分で出来そうです。
本当にありがとうございました。
No.3
- 回答日時:
Googleの検索のようなものを想定していらっしゃるのでしょうね
マクロを使用すればある程度のことはできます。でも簡単なマクロではありませんし、サンプルで掲載されたシートでマクロを作っても、1行、1列でも実際のシートと異なっていたら、おそらくvinsent100さんが修正するのは無理でしょう。
また
>エクセルの関数のみで何とかならないでしょうか。
とのことですが、それは難しいです。1つのセルに複数の検索条件を入力するのは関数では手に余ります。
では、どうするか?
エクセル本来の機能をできる限り利用しましょう
「データ」→「フィルタ」→「フィルタオプション」でも複合条件でデータ抽出が可能です。関数、マクロが使えないなら、まずエクセルの機能を使いこなして、それでも足りないならまた質問してください。
サンプル画像はフィルタオプションで抽出をかけた例です
複数の条件で抽出ができますし、ワイルドカードも使えます。
まずはフィルタオプションを使いこなせるようになってください

No.2
- 回答日時:
No.1です!
たびたびごめんなさい。
前回の方法では
質問にある 例3が希望通りにならないと思います。
あくまで一つのセル内に検索文字がある場合の条件ですので
あまり参考にならないかもしれません。
どうも何度も失礼しました。m(__)m
No.1
- 回答日時:
こんばんは!
参考になるかどうか判りませんが・・・
↓の画像で説明させていただきます。
F列を作業用の列に使わせてもらっています。
作業列F2セルに
=IF($H$2="","",IF(OR(ISNUMBER(FIND($H$2,A2:E2))),ROW(A1),""))
これは配列数式になりますので、この画面からコピー&ペーストしただけではエラーになると思います。
F2セルに貼り付け後、F2キーを押すか、数式バー内で一度クリック、又はF2セルをダブルクリックします。
編集可能になりますので Shift+Ctrl+Enterキーで確定してください。
数式の前後に{ }マークが入り配列数式になります。
このF2セルをオートフィルで下へずぃ~~~!っとコピーします。
そして、I2セルに
=IF(COUNT($F$2:$F$100)<ROW(A1),"",INDEX(A$2:A$100,SMALL($F$2:$F$100,ROW(A1))))
(これは配列数式ではありません)
として、列方向と行方向にオートフィルでコピーすると
画像のような感じになります。
これで、H2セルに検索文字(担当者以外、仮に型番等でもかまいません)を入力すると
H2セルの文字が含まれるものが表に表示されると思います。
尚、数式は100行目まで対応できるようにしていますが
データ量によって範囲指定の領域はアレンジしてください。
以上、参考になれば幸いですが
他に良い方法があれば読み流してくださいね。
どうも長々と失礼しました。m(__)m

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SUMIF関数で、「ブランク以外を...
-
セルを結合した時のエクセル集...
-
同一セル内の重複文字を削除し...
-
文字数のカウントと平均数の算出
-
excelで、空白を除いてデータを...
-
文字列から英数字のみを抽出す...
-
エクセルで、指定の値よりも大...
-
自分の左隣のセル
-
週の労働時間を計算するエクセル
-
エクセル1行おきのセルを隣の...
-
エクセルでエンターを押すと任...
-
エクセルで特定のセル内にだけ...
-
エクセルに入力後、別シートの...
-
EXCELでマイナス値の入ったセル...
-
何時から何時までを○○、何時か...
-
EXCELのcountif関数での大文字...
-
エクセルのセルにある同じ値が...
-
一時間当たりの製造数を調べた...
-
エクセルで、A2のセルにA3...
-
Excelで大量のセルに一気に関数...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SUMIF関数で、「ブランク以外を...
-
文字列から英数字のみを抽出す...
-
自分の左隣のセル
-
excelで、空白を除いてデータを...
-
セルを結合した時のエクセル集...
-
エクセル1行おきのセルを隣の...
-
EXCELのcountif関数での大文字...
-
同一セル内の重複文字を削除し...
-
エクセルで特定のセル内にだけ...
-
エクセルで、指定の値よりも大...
-
週の労働時間を計算するエクセル
-
EXCELでマイナス値の入ったセル...
-
エクセルで、A2のセルにA3...
-
【Excel】4つとばしで合計する方法
-
エクセルに入力後、別シートの...
-
条件付き書式の色付きセルのカ...
-
エラー「#REF」の箇所を置き換...
-
エクセルで年月日から月日のみへ
-
エクセル 12進数
-
一時間当たりの製造数を調べた...
おすすめ情報