Excel表検索の手立てについて

このQ&Aのポイント
  • Excel2010の表で位置と得点の変数から結果を得る方法について教えてください。
  • 実際の表は縦30×横26なのでIF関数の使用は難しいです。
  • 行が固定ならMATCH関数を使用することができますが、この場合はどうすればいいですか?
回答を見る
  • ベストアンサー

Excel表検索の手立てについて

Excel2010で、以下のような表があります    A    B   C   D 1  90  80  70  60 2  85  75  65  55 3  80  70  60  50 ここで、セルA5に「行=2」という「位置の変数」と セルA6に「点=70」という「得点の変数」が与えられています。 この値から、「列=B」(得点の直上の値)という結果(列=2という結果でも可) を得たいのですが、うまいこと関数で何とかならないでしょうか? なにせ、上記は例でしかなく、実際の表は縦30×横26なのでIFを並べるわけにも いかないんです。 行が固定ならMATCH関数で簡単にできるんですが・・・。

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

  • ベストアンサー
  • Chiquilin
  • ベストアンサー率30% (94/306)
回答No.2

=MATCH(A6,INDEX(A1:D3,A5,0),-1) ですかね。

FEX2053
質問者

お礼

あ、なかなかすっきりしたいい方法ですね。 INDEXはこういう使い方ができるんですね。了解しました。 ありがとうございました。

その他の回答 (2)

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

A5セルの値はA1セルから下へ2行離れた3行目という行位置の指定と言うことですね? 求める関数式で返される値は列記号のBまたは列番号の2で良いのですね? =MATCH(A6,OFFSET(A1,A5,0,1,26),0) 検索値が検索指定行に無いときはどうしますか? >実際の表は縦30×横26なのでIFを並べるわけにもいかないんです。 その表でしたらA5とA6セルに検索条件を入力できませんので提示の数式を変形してください。 OFFSET関数の第4引数「1」と第5引数「26」はMATCH関数の検索範囲の1行×26列を意味します。

FEX2053
質問者

お礼

なるほど、OFFSETでも行けるんだ。 いわれてみればその通りなので、ちょっと恥ずかしいです。 どうもありがとうございました。

  • kkkkkm
  • ベストアンサー率65% (1620/2459)
回答No.1

A5に直接2やA6に70が入っているとしたら(例はA列からJ列まで) =IFERROR(MATCH(A6,INDIRECT("A" & A5 &":J" & A5),0),"")

FEX2053
質問者

お礼

なるほど、INDIRECTでの力業には気が付きませんでした。 わかりやすい方法だと思いますが、ほかの方法もありそうなので もうしばらく回答を待ちたいと思います。

関連するQ&A

  • Excel2000で表を作っていますが、うまくできません

    Excel2000で表を作っていますが、うまくできません(T_T) セルA1+B1=C1 C1+A2+B2=C2 C2+A3+B3=C3.... のようなC列に合計欄がある表を作っています。(元帳のような物です) (A列、B列の欄には必ずしも全て数字が入る訳ではありません。) しかし、セルA列とセルB列に数字を入力していない場合、C列に全て「0」が 表示されてしまいます。 数字入力後は、全て下まで残高が入ってしまいます。 セルA列,B列に最後に数字を入れた行まで、Cに数字が入るようにしたいのですが、 できないでしょうか? (30行まで表を作って20行まで数字を入れたとき、21行から30行に残高も入らないように したいのです。) 何だかうまく説明できませんが、是非教えていただけますでしょうか。 よろしくお願いします。

  • セルの結合がされた表を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関数を組み合わせれば出来るのでしょうか よろしくお願いします。

  • エクセルで一覧表を「縦横」に調べて該当する値を取り出す方法について

    Excel2002を使用しています。 下記のような表を作成し、「MATCH関数」と「INDEX関数」を使用して、該当の値(仮にα値:5.3、距離700とします)を取り出そうとしているのですが、エラーになってしまいます。 A B C D 1 3.4 3.5 3.6  2 700 30.0 30.4 30.7 3 750 31.1 31.6 31.9     4 800 32.3 32.8 33.2 5 6 α値 5.3     7 距離 700   この表から、行番号、列番号を出すために、以下の関数式を使っています。     行番号:=MATCH(B6,B1:D1)     列番号:=MATCH(B7,A2:A4)  最後に、「INDEX関数」で該当の値を取り出したいのですが、この「INDEX関数」の結果が「#REF!」になってしまいます。関数式は   =INDEX(B2:D4,D6,D7) ちなみに、D6には、行番号の関数式が、D7には、列番号の関数式が入っています。 このエラーを解消したいのですが、どなたか知恵を貸していただけませんでしょうか。よろしくお願いします。

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

    ソフトはエクセルの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関数の使用は控えたいと思っています。 また、マクロを使わない方法でお願いします。 可能なら関数で、関数で不可能なら名前の定義を使用した方法を教えてください。よろしくお願いします。

  • 【Excel】一致するデータの検索

    Excel2003を使用しています。 Sheet1のB列の値がSheet2のA列に入力されている値と一致したら、Sheet1のC列とD列の値をSheet2のC列とD列に表示させたく、VLOOKUP関数を使用したところ、Sheet1のB列とSheet2のA列のデータの並び方(順序)が同じではないためか、VLOOKUP関数ではできませんでした。 こういう場合、マクロで処理することは可能でしょうか?可能であれば、どのようにコードを記述すればいいでしょうか? Sheet1のデータは4行目から、Sheet2のデータは6行目から入力されています。 よろしくお願いします。

  • Excel2003でのVBA

    WindowsXPでExcel2003を使っています。 Excelにある表をマクロを使って編集したいと思ったのですが、セルの選択の設定で教えてほしい事があります。 まず、横A列~F列、縦1行~6行までの表があります。 A1セルは、空白。 B1セル~F1セルには、1~5の数字が入っています。(見出しなので全て入ってます。) A2セル~A6セルには、a~eのアルファベットが入っています。(見出しなので全て入ってます。) 表の中のデータは、ところどころにしか入っていなくて、全て埋まっていません。 また、横A列~F列というのは固定なのですが、縦1行~6行までという行数は変動します。 この表で、A2セルからF6セルまでを選択したいのですが、行が変動するのでA6とかF6とかでは指定できません。 Range("A2").Select Selection.End(xlDown).Select これで、A2セル~一番下の行(ここではA6セル)まで選択した後、F列まで(列の数は固定です。)選択するにはどうしたらよいのでしょうか? 右下のセルは、空白なので困っています。 Range(Selection, Selection.Next).Select こんなものを考えましたが、これでは一つ右隣しか選択できません。 これを少しいじればいいのではないかと思うのですが、全然違う方法でもかまいません。 どなたか教えていただけないでしょうか? 宜しくお願いします。

  • excel関数を用いてある行の範囲内の数値のみを違う行に抽出し、同じ列に対応する値も引っ張ってくることは可能ですか?

        A   B   C   D 1   33   180 2   58   300 3   89   310 4   152   240 5   205   74 上のような表になっている時に、EXCEL関数を用いて、[A]行の「60以上、180以下の数値」のみをC列に引っ張ってきて、なおかつ[A]行のそれぞれの値に対応する[B]行の値をD行に引っ張ってくることは可能でしょうか? 理想的な結果として   A     B      C      D 1   33  180     58    300 2   58   300    89    310 3   89   310    152    240 4   152   240 5  205  74 というようになってほしいのです。 オートフィルターの範囲指定を用いると、C行に範囲内の値を引っ張ってくる事は出来たのですが、関数ではない為、他の表に応用が効かず、毎回フィルターをかけなくてはいけなかったです…そのため出来れば関数を使いたいのですが、何か方法は無いものでしょうか…

  • Excel関数で表の列番号取得について

    初めまして。 Excelの下記のような表から行ごとに○がついている列の番号を 関数で取得したいのですが、よい方法が思いつかないので質問させていただきました。 (ネットで調べても、行2と列Bが交差するセルに○をつける関数、ばかりが出てきてしまい、 知りたい情報にたどり着けませんでした) 【表】   A B C 1  2   ○ 3 ○ 【取得したい内容】 1 について○がついていないことをしりたい 2 について○がついている「B」を取得したい 3 について○がついている「A」を取得したい どうぞ、お知恵をお貸しください。

  • Excel 表と参照して一致したら行の最左を表示

    エクセルについて教えてください。 A 01 02 03 04 05 B 06 07 08 09 10 C 11 12 13 14 15 のような表と、セルの値を照合して、元の値が 03ならA 10ならB 11ならC と表示させたいのです。 縦2列の表に作り変えればVLOOKUP関数でできるとおもいますが、このままの形でやりたいのです。方法をご存知でしたら教えてください。

  • EXCEL関数について

    EXCEL関数について Sheet1、A1~A1000セルに「1~10」までの値がランダムに入力されております。 数字は「グループ1」、「グループ2」・・・という意味です。 B列、B1~B1000セルには「1~4」までの値がランダム入力されております。 B列については、空白のセルもあります。 Sheet2、A1~A10セルに、「1~10」までの値、「グループ1」~「グループ10」までが順に入力されております。 ここで、Sheet2、B列~E列、それぞれの1~10セルを使用し、、 それぞれの「グループ」がSheet1にて「1~4」の値をいくつずつ選んでいるか算出したいのです。 「グループ1」について、「1」のカウントはB1セル、「2」のカウントはC1のセルに返します。 同じように「グループ2」はB2~E2のセルに、「グループ3」はB3~E3のセルに値を返したいのです。 「COUNTIF」等の関数でいろいろと試してみたのですがうまく反映されません。 拙文乱文、大変恐縮ですが、ご教示頂きたく何卒宜しくお願い致します。

専門家に質問してみよう