• 締切済み

値を検索しその値が含まれるセルを全て表示する式

exel2013で任意のセルに検索する値を入れA列の1行から60000行を検索し検索した値が含まれるセルをすべて表示する式、マクロを教えてください

みんなの回答

  • SI299792
  • ベストアンサー率47% (780/1631)
回答No.3

式、マクロ ならば、数式でもいいのですね。 任意のセル、表示場所がどこか書いてありません。 任意のセル、E1 表示場所、C列、とします。 B1: =1-ISERROR(FIND(E$1,A1)) B2: =B1+1-ISERROR(FIND(E$1,A2)) 下へコピペ。ワークエリアです。目障りなら非表示にして下さい。 C1: =IFERROR(INDEX(A:A,MATCH(ROW(),B:B,0)),"") 下へコピペ。

  • bardfish
  • ベストアンサー率28% (5029/17766)
回答No.2

検索のときは完全一致?それとも部分一致? 「検索した値が含まれるセル」ということだから部分一致でセルの値は数値ではなく文字も含むと受け取れますが・・・ だとすれば、対象となる行の文だけループしてデータが入っているセルの内容と検索対象の文字列を部分一致で比較し、ヒットしたらそのセルを(・・・表示するってどうやって?)表示する。 部分一致の方法については「Excel VBA 部分一致」というキーワードでネットで検索してください。 ちなみに、VB.NETではContains()というメソッド(命令)で実現できますが、Excel VBAの場合はInStr()になります。 VBAとしては基本の形の一つになります。 ルーブして、メープの中で条件判定し、判定結果に応じて処理を行う。 プログラムとしても基礎の一つですね。 ExcelでVBAを作成し、ワークシートにぞを実行させるためのボタンを配置する方法なんかも調べてください。 今後のためにも書籍を購入しておいたほうがいいかもしれませんね。 わたしはExcelでそんなことをするのは時間がかかりすぎてやりたくないのでもっぱらVisualStudiとデータベースを利用しています。 これだとExcelで数分かかる処理が、場合によっては数秒で完了してしまいます。

nakanakaokwave
質問者

補足

部分一致 文字です 

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

>マクロを教えてください ここはVBAのコード作成を受注するところではない。 ヒントを教えてもらうとか、疑問点を聞くぐらいにしてください。 ーー VBAの中でも、Find(特にFindNext)の動作の仕組みの理解が独特で、Findの箇所は初めてのものには、難しい箇所のだ。 しかしFindに実例記事は、WEBでは、あふれている。 調べてコピペし、実行したらしまいだ。 Googleで「VBA Find」で照会したか? ーー A列に 例データ コード 123 345 567 231 123 567 545 231 12 123 567 545 231 123 23 123123 として 標準モジュールに Sub test01() keyword = 123 Set myrange = Range("A1:A100000") Set x = myrange.Find(what:=keyword, LookAt:=xlWhole) If x Is Nothing Then MsgBox keyword & "'はありませんでした" Exit Sub Else MsgBox keyword & "'は" & x.Row & "行目にあります" Dim msg As String Dim myCell As Range Set myCell = x '--- Do Set myCell = myrange.FindNext(myCell) MsgBox keyword & " は" & myCell.Row & "行目にあります" Loop While myCell.Row <> x.Row End If End Sub 実行してみて。 本番では、msgboxの行を削除のこと。 なお、上記VBAでは、最初の該当行に戻った時にも、Msgboxが出てしまうが、本番で、msgboxを省いたら、実害はないので、そのままにしている。

関連するQ&A

専門家に質問してみよう