• ベストアンサー

エクセルで表の検索方法を教えてください。

エクセルで表の検索方法を教えてください。 添付画像のように A1:D16 に表があります。 A18:D18 に1行のデータがあります。 このデータが、表の何番目にあたるのか検索する方法を知りたいです。 すぐに思いつくのは、作業列を1列用意し、そこにA列からD列の各行の値を結合して表示させ、作業列の値で検索することですが、それ以外の関数での方法を知りたいです。

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

  • ベストアンサー
  • msMike
  • ベストアンサー率20% (363/1775)
回答No.1

=MATCH(A18&B18&C18&D18,A1:A16&B1:B16&C1:C16&D1:D16,0) 【お断り】上式は必ず配列数式として入力のこと

emaxemax
質問者

お礼

体調がわるく、お礼が遅くなりました。申し訳ありませんでした。 求めていた結果が出ました。 ありがとうございます。

その他の回答 (6)

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

すでに、もっと進歩した方法の解法が出ていますから、今更ですが理解がむつかしい。 下記は配列数式を素直に適応した方法です。 こういうのはVBAで考えれば、無理なく、また複数該当でも拾える。 質問者に多いが、関数へなぜそんなにこだわるのか。 ーー 空いているセル範囲の16行を範囲指定し 数式バーへ=IF((A1:A16=$A$18)*(B1:B16=$B$18)*(C1:C16=$C$18)*(D1:D16=$D$18)=1,ROW(A1:A16),"") と入れて、SHIFT+CTRL+ENTERを同時押しする。 本件の場合は、3(番目の)行目に 3と出ます。 A3にあることを示しています。

emaxemax
質問者

お礼

ありがとうございます。 残念ながら正しい答えは返りませんでした。

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.6

添付は4ビットのコード表ですね この表は必要りません ですので0~15 「=A18*8+B18*4+C18*2+D18+1」

emaxemax
質問者

お礼

ありがとうございます。 残念ながら正しい答えは返りませんでした。

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

回答ではないのですが、添付画像のセルに見えて居る「TRUE、FALSE」は真理値なのか、2種類の文字列「A,B」の代わりと言えるものなのか、はっきりさせるべきです。あるいは例としてはTRUE等は適当では無い(大げさ)のかも。 普通にTRUEを入れると下記実行では-1が返る。 ’trueなら方が一致しませんと返る。 Sub test01() MsgBox Range("A1") * 1 End Sub Sub test02() MsgBox VarType(Range("A1")) End Sub test02()では、A1セルにTrueと入れると、11=ブール型と返る。 ーー ブール型ならそれ相応な回答もありそうなので、注意してほしい。

emaxemax
質問者

お礼

ありがとうございます。

  • masnoske
  • ベストアンサー率35% (67/190)
回答No.4

E1に以下の数式を入力し,E16までコピー =AND(A1=$A$18,B1=$B$18,C1=$C$18,D1=$D$18) TRUE が一致した行です. 一致する行が複数あっても対応可能です.

emaxemax
質問者

お礼

ありがとうございます。

  • msMike
  • ベストアンサー率20% (363/1775)
回答No.3

[条件付き書式]の“お遊び”です。(*^_^*) ルールの適用先: =$A$1:$D$16 ルールの種類:“数式を…を決定” ルールの内容↓  ̄ ̄数式→ =COUNTIF($E$18:$E$22,ROW($A1))  ̄ ̄書式→ 黄の塗りつぶし色

emaxemax
質問者

お礼

ありがとうございます。

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.2

18行目の組み合わせが1行目から16行目の組み合わせで複数見つかることはありませんか? また、18行目の組み合わせが見付からないときの処理をどうしますか? 複数の組み込み関数を併用すれば作業列を使わなくても検出可能です。 MAX関数、INDEX関数、MMULT関数、ROW関数を組み合わせる方法で良いと思います。 =MAX(INDEX((MMULT((A1:D16=A18:D18)*1,{1;1;1;1})=4)*ROW(A1:A16),0)) 一致する組み合わせが複数のときは最下行の値になります。 見付からないときは0が戻ります。

emaxemax
質問者

お礼

体調がわるく、お礼が遅くなりました。申し訳ありませんでした。 MMULTは初めて見る関数です。 求めていた結果が出ました。 ありがとうございます。

関連するQ&A

  • 複数表から検索値を検索し、検索値の存在した表から結果を求める方法

    ソフトはエクセルの2000です。 やりたいことは、 「複数表から検索値を検索し、検索値の存在した表から値を抽出する方法」もしくは 「A2:H11から検索値を検索し、検索値から○行下の値を抽出する方法」 になると思います。 以下に例を記入します。 下記のように「項目」と「名称」2列で構成された表を下に作成しているとします。       A列   B列    C列   D列   E列    F列   G列   H列 1行 2行 3行   社名 ○○○社       社名 □□□社       社名 ◆◆◆社 4行   場所 ○○○県       場所 □□□県       場所 ◆◆◆県 5行   件名 ○○作業       件名 □□作業       件名 ◆◆作業 6行   担当 ○○○殿       担当 □□□殿       担当 ◆◆◆殿 7行    8行   社名 ×××社       社名 △△△社 9行   場所 ×××県       場所 △△△県 10行   件名 ××作業       件名 △△作業 11行   担当 ×××殿       担当 △△△殿 A1のセルに「△△△社」と社名を入力すると、B1セルに場所の「△△△県」が表示するようにしたいのです。 複数のIF関数で括れば可能だとは思いますが、表の数が制限され、関数式も長くなるためIF関数の使用は控えたいと思っています。 また、マクロを使わない方法でお願いします。 可能なら関数で、関数で不可能なら名前の定義を使用した方法を教えてください。よろしくお願いします。

  • エクセル 表検索について

    次のような表で検索するための関数式を教えてください。 行の見出しに、2,5,7,8,9という数字があり、 列の見出しに、10、20,30,40,50という数字があり 表の中に各行、列に対応した数字を埋めている表があり ます。 こんな感じです。       2   5   7   8   9 10    1.1  1.2  1.3   1.4  1.5 20    1.2  1.3  1.4   1.5  1.6 30    1.3  1.4  1.5   1.6  1.7 40    1.4  1.5  1.6   1.7  1.8 50    1.5  1.6  1.7   1.8  1.9 行が2、列が30だったら、1.3と表示されるようにしたいです。 よろしくお願いします。

  • エクセルで行から数値を検索し、検索した数値のある列

    エクセルで行から数値を検索し、検索した数値のある列から左側の全ての合計を求めたいです。   A B C D E F 1  3 4 8 9 11 22 ←数字は隙間なくあるが、値がバラバラ(ただし昇順) 2 3  2~6行には色々な数字がまばらにある 4 5 6 1行目から検索したい数→10(別のセルで数式結果として出た数) ズレてるかもしれませんが・・・ E1セルに書かれている「11」の数字より前のD列、 A~D列の2行目~6行目の合計を各行ごとに別々に出していきたいです、どうしたらいいでしょうか また、表は行も列もデータを追加していく予定です

  • エクセルの表作成で困っています。

    条件:その行の左から1番目の値 < その列の上から1番目  真の場合:その行の左から2番目の値  偽の場合:その行の左から3番目の値 という表を作成したいのですが、関数の式の作り方がわかりません。 IF関数を使えばよいのでしょうか。 それとも他にもっと良い方法があるでしょうか。           201001 201002 201003 201004 201005・・・ 200903 あ い    い   い   い   い   い・・・ 201003 か き    か   か   か   き   き・・・ 201112 さ し    さ   さ   さ   さ   さ・・・ ・ ・ ・ というような表を作成したいのです。 宜しくお願いいたします!

  • excelでデータ検索

    excelでのデータ検索をする関数について教えてください。 例えば下のような4列の表があるとします。   A B  C D  東京 1 社長 あ  東京 1 部長 い  大阪 1 課長 う  大阪 2 部長 え A~C列の値をキーにして、D列の値を見つけたいのですが (例えば(東京,1,部長)なら「い」という風に。) 何か使える関数はあるのでしょうか。 lookup関数とかだと、1列の値しか対象にできないので..。 よろしくお願いします。

  • セルの結合がされた表をHLOOKUPで検索する場合について

    Excel初心者です。質問があります。 下記のような表があります       A列   B列   C列   D列 行番号1    12/1       1/1 行番号2  件数   金額  件数   金額    行番号3   2    100   3    200 行番号5   1/1 ここでHlookupを使って下記のように検索します A5に1/1と入力して 件数を検索するには   =HLOOKUP(A5,A1:D3,3) → 3 ここまではいいのですが 金額の「200」を検索するにはどのような関数を使えばよいのでしょうか? ※行番号1の「12/1」と「1/1」はセルの結合をしており 「12/1」のセルはA1、「1/1」のセルはC1になっています。 HLOOKUP関数とVLOOKUP関数又はCOLUMN関数を組み合わせれば出来るのでしょうか よろしくお願いします。

  • Excel(2000)で行毎にセルをみて、値を返す

    例えば、以下のようなデータがあったとして、各行毎に左から見た結果、最初にデータがあったセルの列の1行のセルの値を各行のG列に返したい。 ______A__B__C__D__E__F__G__ 1行_ア__イ__ウ__エ__オ__カ____ 2行_1__3__5__2__4__1__ア__ 3行_____2__5__1__5__4__イ__ 4行_____________2__8__2__エ__ 5行_____2______2__1__4__イ__ 6行_________5______2______ウ__ G列に結果。 例えば、G3のセルに何らかの関数を入れて、A3~F3を左から見た結果、B3に2というデータがあるので、その列の1行であるB1の値、イをG3に返すといったないようです。 _ は、スペースをとるためのものです。 実際のデータは500行あり、各行の検索する列数は23列あります。 よろしくお願い致します。

  • エクセルのデーター検索、抜き出し。

     初めまして、よろしくお願いします。 データーで    A      B     C     D 1   ・  ・   5  5     15 6  2     30 7  9     18 ・  ・      ・ ・  ・      ・ 100 87     21 というデーターが有ります。抜き出したい値がこのデーターのA列の値と同じ行のBの値を抜き出す方法を探しています。(例えば2を入力すれば、2はA6の値と同じなので、B6の値30を抜き出す。)できたら関数式で抜き出す方法が有りましたら、よろしくお願いします。

  • EXELの関数を使った検索方法

    A1にあるセルのデータと同じものを、列Bの中から探し出す。 ↓ 列Bのn行目で検索がヒットすれば列Cのn行のデータ(要するに横の値)を列Dの上から順に書き込んでいく。 ↓ これをA1~Axまで繰り返したいのですが、何か良い方法ございませんか?できれば関数を使って一気に終わらせたいです。 わかりにくければ補足します。 よろしくお願いします。

  • Excel 2000 で近似値を取得する方法

    1行目がタイトル、2行目から数値のデータがA列~E列まで500行ほどあります。 D列は小数点第3位までの数値が並んでいます。 E列には0から始まって100まで偶数が並んでいます。 E列の数値に一番近い値をもつD列のデータをみて、A列とB列のデータを別シートに書き出したいのですが、 上手くいきません。 試して駄目だった方法は、 VLOOKUP関数:0.815と2.015の場合、2.015の値を取得したいのに0.815のデータになる。 EVEN関数:0.×××が沢山並ぶ場合2になるので比較ができない。 なにか関数で上手く組み合わせてできる方法は無いでしょうか? また、VBAでも可能であれば方法をご教示下さい。 お願いいたします。

専門家に質問してみよう