• ベストアンサー

エクセルの関数を教えてください

エクセルのVBで、ある値で列を検索し、その値が何行目かを取得したいのですが、できますか?    A列     1 りんご    2 みかん   3 バナナ   4 かき     5 栗       "みかん"= 2行目 "バナナ" = 3行目  "栗" = 5行目 基本的なことですよね、すいませんがお願いします。

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

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.5

私も作ってみました。 検索範囲はシート全体にしてあります。検索文字はInputBoxを使って入力します。 Findを使って、検索文字があるだけMsgBoxで出力します。 ご参考に。 Sub searchCharacter()   Dim schArea As Range   '検索する範囲   Dim myTarget As String  '検索文字   Dim fndCell As Range   '見つけたセル   Dim firstAdr As String  '最初に見つけたセル   Dim schCot As Integer   '見つけた個数   '検索文字の入力   myTarget = Application.InputBox("検索する文字列を入力します", "検索", Type:=2)     If myTarget = "False" Then Exit Sub   '1回目の検索実行   Set schArea = ActiveSheet.UsedRange '検索する範囲(この場合はシート全部)   Set fndCell = schArea.Find(what:=myTarget) '検索     If fndCell Is Nothing Then       MsgBox "検索文字:" & myTarget & " は見つかりませんでした。"       Exit Sub     End If   firstAdr = fndCell.Address '1回目の検索結果のアドレス     '2回目以降の検索実行     Do       If MsgBox("検索文字:" & myTarget & " は" _         & fndCell.Row & "行目" & fndCell.Column & "列目" & "にあります。", _           vbOKCancel, "結果") = vbCancel Then         Exit Sub       End If       schCot = schCot + 1       Set fndCell = schArea.FindNext(after:=fndCell)  '次を検索     Loop While fndCell.Address <> firstAdr And Not fndCell Is Nothing   MsgBox "検索文字:" & myTarget & " は " & schCot & "個見つかりました。" End Sub

その他の回答 (4)

  • kbonb
  • ベストアンサー率51% (254/492)
回答No.4

こんにちは  ワークシート関数でしたら、 =MATCH("バナナ",A:A,0)  マクロでしたら、 Sub test() Dim Answer As Variant On Error GoTo errHandler Answer = Application.WorksheetFunction.Match("バナナ", Columns(1), 0) MsgBox Answer, , "検索結果" Exit Sub errHandler: MsgBox "検索値が見つかりません" End Sub でいかがでしょうか?

参考URL:
http://www2.odn.ne.jp/excel/
回答No.3

おとと; 先ほどの当方の回答、一部不足; > rngWk = Range("F1") '<=MATCHを使用するためのセル ↑ Set rngWk = Range("F1") ~~~ ですね この方法を使うならMsgboxなどで検索結果を表示した後に rngWk.Value = "" で消してしまった方がカッコイイでしょう(^^)

回答No.2

ExcelのVBAからMATCHを使用する場合は Dim rngWk as Range rngWk = Range("F1") '<=MATCHを使用するためのセル rngWk.FormulaR1C1 = "=MATCH(""バナナ"",R1:R5,0)" Msgbox rngWk.value,,"検索結果" といった感じで書きますね セルを使いたくない場合は dim Answer as Variant Answer = Application.WorksheetFunction _ .Match("バナナ", Worksheets(1).Range("A1:A5"), 0) Msgbox Answer,,"検索結果" でAnswerに結果が返ります *VBAのシート上でMATCHなどのワークシート関数を書いて[F1]を押すとhelpにコードの書き方が出ますよ なおMATCHで戻ってくる数字は「行番号」ではなく、「"A1:A5"で指定された中の何番目であるか」なので データを"A5:A10"に入れている場合には戻ってきた数字に[+4]などしてあげましょう♪

  • beta
  • ベストアンサー率0% (0/1)
回答No.1

=MATCH("みかん",A1:A5,0) -> 2 =MATCH("バナナ",A1:A5,0) -> 3 というふうに結果が出るかと.... "みかん"とか"バナナ"をセル名にしてもいいでしょう... お試しください。

関連するQ&A

  • Excelについて

    Excelに下記のようなデータが入っているのですが A列   |   B列 りんご |     2 みかん | 3 ばなな | 1 りんご | 6 すいか | 7 かき | 3 みかん | 4 すいか | 8 りんご | 1 *(実際には100件ぐらいのデータが入っています。) A列で同じ「りんご」があれば、同じ行にあるB列の値を合計したいのでがどうすればよいですか? また「りんご」だけでなく他にもあればその値を合計して出したいのですが。 例えば、今回の例では「りんご」が三箇所あるので「2+6+1]で9と表示したいのですが。 イメージとしては、 A列  |   B列 |   C列   |  D列 りんご |    2  |    りんご |  9 みかん |    3  |    みかん | 7 ばなな | 1  |    ばなな | 1 りんご | 6  |    すいか | 15 すいか | 7  |    かき | 3 かき | 3 | みかん | 4 | すいか | 8 | りんご | 1 | というようにしたいです。どなたか教えてください。

  • エクセル関数

    初歩的な質問かもしれませんが困っています。 エクセルのA列にリンゴ、ミカン、バナナなど10種類の食べ物の名前が無造作にたくさん入っています。 その中から連続する2行に、バナナ、ミカンとなっている箇所が何カ所あるかを調べるには、どうすればよいでしょうか? 要するに、縦の2行にわたる条件で個数をカウントしたいのです。 エクセルのバージョンは2010です。 どなたか教えてください。

  • エクセル関数の検索について

    エクセルの関数についてご教授下さい。 以下のように文字列が記入されています。 (列A) りんご a b c (w) (k) ! みかん u b c (w) (k) ! ○”りんご”の行から”!”の行までを検索して、文字列”a”があるかを確認したい ○”みかん”の行から”!”の行までを検索して、文字列”a”があるかを確認したい ○()で記載している文字列は場合によって記入されているため、毎回同じ行数ではない このような条件がある時に、関数で要件を満たす事はできますでしょうか? イメージ的には、以下のようにできればと思ってます。 1.A列全体から”りんご”を検索 2.”りんご”行から下の”!”までの間で”a”があるかを確認 3.A列全体から”みかん”を検索 4.”みかん”行から下の”!”までの間で”a”があるかを確認 もしくは 1.A列全体から”りんご”を検索 2.”りんご”行から下で、”a”があるかを確認 3.A列全体から”みかん”を検索 4.”みかん”行から下で、”a”があるかを確認 このような感じで作れますでしょうか? よろしくお願いいたします。

  • お願いします!エクセルで問題発生!

    excelで困っています。 A      B        りんご   私は りんご すきです  ばなな   私は ばなな  すきです みかん  私は みかん すきです 私は<A行> 好きです というように、BにA行の文字列を入れるにはどうすればよいでしょうか? よろしくおねがいします・・・

  • エクセルの関数で

    お世話になります       a       b       c 1    123-3322    りんご     東京 2    342-5534    みかん     静岡 3    439-6754    かき      山口 4    123-3322    なし      広島 5    123-3322    くり      沖縄       a       b       c 1    123-3322    りんご     東京 2    123-3322    なし      広島 3    123-3322    くり      沖縄 のようにd1にa列の検索したい番号を入力して e1にりんごf1に東京というように2.3.4行と 全て摘出したいのです よろしくお願いいたします

  • エクセルで値を指定しての検索が出来ない場合の同じ値のセルをすべて抽出す

    エクセルで値を指定しての検索が出来ない場合の同じ値のセルをすべて抽出する方法 エクセルのA列に上から順に A1みかん A2リンゴ A3みかん A4パイナップル A5マンゴー A6みかん A7パパイヤ A8リンゴ A9バナナ A10グレープフルーツ A11みかん A12レモン という具合に1000行くらいあって同じ値のみを抽出する方法を教えてください。 上記の場合 A1みかん A3みかん A6みかん A2リンゴ A8リンゴ という具合に表示してほしい。 同じ値の行は最大3つ(3種類×3行)、又は2つ(2種類×2行)です。 後の980行くらいはそれぞれ値が違います。 また同じ値が何で有るのかも不明です。 上記例ではみかんとリンゴですが、そうだとは限りません。 レモンかもしれないし、マンゴーかもしれない。 またその1000行の中の値の種類も何種類あるのか不明です。 最悪1000種類で重複は無いかも知れない。 よって値を指定しての検索は出来ません。 ソートして昇順にとかにすれば同じ値は上下に並びますが 実際には、みかん とかではなく英数字20ケタなので目で見ただけで 上下に並んでいるのは見つけれません。 12A3456D620X834F7623 14B63795V63879576235 167353F46856G6983639 167353F46856G6983639 16C342D374A755C65833 1000行の中からこのように上下が同じ値の行を見つけるのは難しいです。 簡単に発見する方法はありますか?

  • エクセル 条件付き書式設定でできることについて。

    エクセル 条件付き書式設定でできることについて。 こんにちは。すみません。 今日は、エクセルの条件付き書式設定について聞きたいことがあります。 例えば A列   B列    C列 リンゴ  出荷  スーパー バナナ  未出荷 倉庫 ミカン  出荷  市場  リンゴ  ・   ・ バナナ  ・   ・ バナナ  ・   ・ ミカン  ・   ・ りんご  ・   ・ とある場合。 バナナの項目について分かりやすくするため バナナの行全体(B,C列)についても塗りつぶしなどを設定をしたいと考えています。 ただ、いちいち、バナナの項目毎に、B、C列まで塗りつぶしなどをおこなっていると じかんがかるため、できたら「バナナ」という項目とその行について自動的に 塗りつぶし等の効果をかけたいのですが、これって条件付き書式設定でできますか?? お願いします。

  • EXCELで重複する値の検索

    EXCELで重複する値を検索して、かつその重複した値と同じ行の隣のセルの値を返すということをしたいのですが、どうすればうまくいきますでしょうか。 具体的には下記のようになります。    A    B   C 1 りんご  A市場 2 みかん  C市場 3 りんご  D市場 4 なし   B市場 5 バナナ  A市場 6 りんご  F市場 上のような表があったとして、A列の重複を検索(この場合はりんごが重複)して、重複した場合はB列の値をC列に返すことをしたいんです。 希望する出力は以下のような形です。    A    B    C  1 りんご  A市場  D市場、F市場 2 みかん  C市場 3 りんご  D市場  A市場、F市場 4 なし   B市場 5 バナナ  A市場 6 りんご  F市場  A市場、D市場 よろしくお願いします。

  • エクセル 条件付き書式設定でできることについて。

    エクセル 条件付き書式設定でできることについて。 こんにちは。すみません。 今日は、エクセルの条件付き書式設定について聞きたいことがあります。 例えば A列   B列    C列 リンゴ  出荷  スーパー バナナ  未出荷 倉庫 ミカン  出荷  市場  リンゴ  ・   ・ バナナ  ・   ・ バナナ  ・   ・ ミカン  ・   ・ りんご  ・   ・ とある場合。 バナナの項目について分かりやすくするため バナナの行全体(B,C列)についても塗りつぶしなどを設定をしたいと考えています。 ただ、いちいち、バナナの項目毎に、B、C列まで塗りつぶしなどをおこなっていると じかんがかるため、できたら「バナナ」という項目とその行について自動的に 塗りつぶし等の効果をかけたいのですが、これって条件付き書式設定でできますか?? お願いします。

  • エクセルVBA

    1ブック A列 B列 みかん 105 りんご 150 バナナ 198 2ブック A列 D列 みかん 105 りんご 150 バナナ 198 2ブックのA列が1ブックのA列と同じ値なら1ブックのB列の値を2ブックのD列に反映させたいのですが、どうしたら良いでしょうか。 A列の値を基準にB列だけでなく、他列も抽出したいのですが…。 宜しくお願いします。

専門家に質問してみよう