• ベストアンサー

A1:D10のような複数範囲でセル位置を検索したい

エクセルで1列や1行であれば指定の文字を探す関数は知っていますが A1:D10のような複数の列、行の範囲の中から指定の文字が入っている セルの位置を調べる関数はないでしょうか? これか出来たら他の作業が出来るのですがずっと作業が止まったままです。 お願いします!

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

セルの位置を調べてもあんまりそれだけでコタエになるワケじゃないので,もっと具体的に「それを調べた後に更にどういう結果が欲しい(実際には何をしたい)」のか,別途改めてご相談を投稿してみてください。 とりあえず今回のご質問の範疇では。 ○条件に該当するデータが必ず一つあり,必ず1つしか無い事が判っている場合 該当の行番号 =SUMPRODUCT((A1:D10="目的値")*ROW(A1:D10)) ○条件に該当するデータが幾つあるのか無いのか判らない場合 該当の列番号 =IF(COUNTIF(A1:D10,"目的値")=1,SUMPRODUCT((A1:D10="目的値")*COLUMN(A1:D10)),"N/A") #言わずもがなですが勿論,探したい目的値が文字なのか数値なのかに応じて,適切に数式を修正しなければいけません。 #セル番地を取り出しても殆ど使い道はありませんが,そういう結果が欲しいならADDRESS関数などを併用します。

benitier59
質問者

お礼

こちらの回答を応用して解決できました! 有難うございました。

その他の回答 (4)

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

(1)関数 MATCH関数やVLOOKUP関数は1列内を捜します。 また1列内でも複数該当があるときに、2つ目以降を探すのは難しいです。 そういうことを質問に注意書き出来て無いというのは、勉強が足りません。 関数では非常に式が複雑になって難しい。 ーー (2)操作 操作ならセル選択状態を示すだけだが、検索操作があるでしょう。そういうことも質問に述べてない。 ーー (3)VBA (2)の操作をして、マクロの記録を取れば、コードがどういうものになるかがわかる。 繰返しに持って行くところと検索終了の処理が難しいが、WEB照会すればコード例は沢山見つかる。 ーーー 該当セルを選択されたとして、質問者はそのセルの情報から何を知り(取り)たいのか、も書いてなくて、この質問はザルのような質問。 >字を探す関数 補足では数値を探すようでも在る。この点がやり方の死命を制す場合もあるので、明確にして質問を書くこと。 エクセルのバージョンも書いておくのが常識。

benitier59
質問者

お礼

NO.2さんの回答で解決できました!

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

こんばんは! 横からお邪魔します。 No.1さんの補足を読ませてもらうと >検索したいセルの範囲はA2からDQ1000まであって >そこにランダムに1~500までの数字が入っています とありますので、範囲内に複数あっても表示するようにしてみました。 VBAになってしまいますが・・・ 範囲内のデータは文字列ではなく、数値とします。 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面が出ますので ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub test() 'この行から Dim i, j As Long Dim vl As Variant Dim str As String vl = Val(InputBox("検索したい数値を入力。")) If WorksheetFunction.CountIf(Range("A2:DQ1000"), vl) Then Application.ScreenUpdating = False For j = 1 To 121 For i = 2 To 1000 If Cells(i, j) = vl Then str = str & WorksheetFunction.Substitute(Cells(i, j).Address, "$", "") & " " End If Next i Next j Application.ScreenUpdating = True MsgBox (vl & " のセル番地は" & vbCrLf & Left(str, Len(str) - 1) & vbCrLf & "です。") Else MsgBox "該当データはありません。" End If End Sub 'この行まで ※ INPUTBOXが表示されますので、検索したい数値を入力すると、そのセル番地がメッセージボックスに表示されると思います。 ご希望の方法でなかったらごめんなさいね。m(_ _)m

benitier59
質問者

お礼

NO.2さんの回答で解決できました!

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

例えばE1セルに指定文字を入力するとしてその文字の入力されているセル番地は次の式で求めることができます。 =IF(COUNTIF(A1:A10,E1),ADDRESS(MATCH(E1,A1:A10,0),1),IF(COUNTIF(B1:B10,E1),ADDRESS(MATCH(E1,B1:B10,0),2),IF(COUNTIF(C1:C10,E1),ADDRESS(MATCH(E1,C1:C10,0),3),IF(COUNTIF(D1:D10,E1),ADDRESS(MATCH(E1,D1:D10,0),4),""))))

benitier59
質問者

お礼

NO.2さんの回答で解決できました!

  • pentium100
  • ベストアンサー率45% (689/1517)
回答No.1

どんなことをしようとしているのかがいまいちよく分かりませんが、 条件1と条件2の組み合わせ表があって、 指定した条件が交差するところの値を求めるなら INDEX関数とMATCH関数の組み合わせはいかがですか? http://www.eurus.dti.ne.jp/yoneyama/Excel/kansu/index_function.htm セル範囲内にそれぞれどんな内容が入っていて、 どんな検索の仕方、条件の与え方をして、 どんな結果(セルの番地なのか、内容なのか)を返したいのかがよく分からないので 外していたらごめんなさいね。

benitier59
質問者

補足

ご返答ありがとうございます。 検索したいセルの範囲はA2からDQ1000まであって そこにランダムに1~500までの数字が入っています。 例えば345が入っているセルの番地を返したいです。 MATCH関数だと1列しか指定が出来ないので複数の列から検索したいです。

関連するQ&A

  • Excelの関数で、範囲内で条件と一致したセルの位置を取得するには

    Excelの関数で、範囲内で条件と一致したセルの位置を取得するには どうすればよろしいでしょうか? (例)  5行×5列にA~Yまでの25文字がランダムで配置されている場合、  「K」と「R」の位置(相対位置等)を取得したい。  ※範囲内に配置されている値は重複しません。 実際は20行程度×20列程度の範囲です。 ほとほと困り果てています。 よろしくお願いします。

  • 文字列検索しセルの位置が知りたい

    指定範囲内で文字列を検索し、見つかったセルの行番号、列番号を知りたいのです。 マクロでなく関数で出来るでしょうか?

  • Excel 「条件付き書式」でセルの範囲に色を付ける場合

    いつも大変お世話になります。 Excelの「条件付き書式」を使って指定するセルの範囲に色を付けたいのですが、どうすればよいでしょうか。状況は以下のような感じです。   A  B  C  D 1 ○  ×    文字列  ←色を付けたい行 2 ○  ○ 3 ×  × ○  文字列  ←色を付けたい行 Dセルで文字列の入力されてある行(AからDセル)に色を付けたいのです。 何とぞよろしくお願いいたします。

  • エクセルでセルの位置を求める

    エクセルの表から複数の条件に合ったセルの位置を求めたいのですが・・・ たとえば ・|A|B| 1|3|1| 2|3|2| 3|5|1| 4|5|2|<--この行(4)を求める 5|6|1|・・・・ ・・・・・ の様な表の場合A列が5でB列が2の行(この場合4)を求めたいのですが よろしくお願いいたします。

  • 任意の複数のセルから文字を抽出する法

    エクセルの勉強中です。 質問があります。 エクセルには縦の列と横の行があるようですが、 その任意のセルに入った文字列を抽出することは可能でしょうか。 例えばB列に入った5行目、8行目、11行目、14行目といったようにある配列に並んだセル内の文字を別の新規のD列に順番にD1、D2、D3、D4のセルに並べていくという方法などです。 同じファイルでなくても別の任意のファイル内の指定の列に順に入れていくといった作業などです。 同様にC列に入った4行目、8行目、12行目、16行目内のセル内の文字を今度は 新規のE列のE1,E2,E3,E4に順に並べていくなど、上記のような作業を一度に行えればそのような方法があるのか、お知りになる方よろしくお願いします。 その目的の列ごとに行っていく方法でもかまいません。

  • エクセルの一つのセルに複数行の文字を入れる方法

    エクセルの一つのセルに複数行の文字を入れる方法を教えてください。 メモ帳などで入力したこのような文章をエクセルに挿入したいのです。 1.あいうえお   あいうえお   あいうえお そのままコピーしてエクセルに貼り付けたら 一つのセルには入らず3行分にまたがってはいりました。 セルの結合をするのかしら?と思って結合したら1行目の「1.あいうえお」が真ん中に残って 2,3行目の文字が消えてしまいました。 このような文章をこのままの状態で一つの列の一つの行(A列1行目など)に入れるには どのようにすればできるのでしょうか?

  • セルの数字を範囲で選択して計算させたいです。

    エクセル2000を使用しています。 CSVファイルを読み込んで、シートに,区切りで開きました。 特定の列の数字を範囲で選択して(複数行)、範囲で選択したセルの数字を1/1000したいです。  特定のセルを範囲で指定するのは、毎回セルの開始行とセルの終了行が変わるためです。また 選択行の上下セルにも文字が入ってきます。 別シートに数式をいれないで、同じセルに計算結果を出すことは可能でしょうか?

  • (MS-Excel)複数の条件にマッチする複数のセルを配列?で出力させ

    (MS-Excel)複数の条件にマッチする複数のセルを配列?で出力させたい。 たとえば、条件1=A列で値が数値であるセルと、条件2=条件1でマッチしたセルと同じ行でC列で値が「その他」という文字列であるセルを検索させます。 そして、A列でマッチしたセルの値をE列に出力させて、C列でマッチしたセルの値をF列に出力させたい、というような感じです。 VLOOKUP関数などで、{配列}を使うなどすれば可能だと思って試行錯誤したけどダメでした。 なお、データベース関数のように条件セルなど作業セルが必要な方法は使いたくないです。 よろしく、お願いします。

  • エクセルのHLOOKUP関数の検索範囲指定で、複数のシートにわたる範囲

    エクセルのHLOOKUP関数の検索範囲指定で、複数のシートにわたる範囲指定は出来ないのでしょうか。 例えば、シート1からシート5まであり、各シートのA1:D10を指定するとか。

  • 複数セルから特定の文字を検索して、その対象セルを抽出したい

    エクセルで関数、VBAを使用して、下記のようなDATA抽出を行ないたいのですが、どなたか、ご指導いただけないでしょうか。 たとえば、2種のシートが、各々、 <シート1>   列A   列B 行1 A1 ABCD-123 行2 B23 EFGH-456 行3 C456 あいうえお <シート2> 列A 列B 列C  列D  列E 行1 A1 A2 A3 行2 B23 C5 A4 行3 A5 B2 C456 ・・・・・・・となっている場合、 <シート2> の列D  行1 へ "A1"と入力(記載)がある場合、列Eに   ”ABCD-123”と表示(抽出)を行ないたい。 セルには、文字、数字、記号が入ります。 よろしくお願い致します。

専門家に質問してみよう