• ベストアンサー

エクセルのMATCH関数について

エクセルのMATCH関数を使って“E18:E23”の表から125以下の1番目の値相当する”“E11:E16”の値を取り出す計算式を作成しています。(“E18:E23”表のそれぞれの行の数値が“E11:E16”の表のそれぞれの行の数値のリンクしています。そのときの数式が“=INDEX(E11:E16,MATCH(125,E18:E23,1),1)”です。この場合は上手くいくのですが、条件を“125以上の1番目の値相当するを作成して、”=INDEX(E11:E16,MATCH(125,E18:E23,-1),1)“の様にMATCHの式の最後を-1にするんですが、”#N/A“のエラーメッセージが表示します。どうすればいいのでしょうか?(*なお表“E18:E23”は数値が小さい順ですが、表“E11:E16”そうとは限りません)  それと、125以上の1番目だけでなく、2番目、3番目を拾い出す計算式はないでしょうか? 宜しくお願いします。関数に関しては初心者でいろいろ検索しましたが、ぴったり来ません。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こういうことでは? 「125以上の1番目の値相当する」 =INDEX(E11:E16,MATCH(INDEX(SMALL((E18:E24>=125)*E18:E24,COUNTIF(E18:E24,"<=125")+1),,),E18:E24,0),1) "<=125")+1) の+1が125の次の1番目ということで、 2番目、3番目 は、+2, +3 ということになりますが、そういう数が存在している限りです。

jhon999999
質問者

お礼

早速の回答ありがとうございました。無事解決しました。

その他の回答 (1)

回答No.1

match関数の照合型に-1を使いたければ、検査範囲のデータは降順に 並べ替えておくのがルールです。大きな数値が上で小さな数値が下 ですね。 で、match関数は見つけた数値が検査範囲の何行目にあったかを返し てくるので、index関数に渡すときに+1すれば1行下、+2すれば2行下 の値を取り出せます。

関連するQ&A

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

    エクセルのMATCH関数についての質問ですが、どうしてもエラーが表示され悩んでいます。どうか教えていただければと思います。 たとえば下記のような場合なぜかエラーが発生してしまいますがどうしてでしょうか?      A列   B列   C列   D列   E列   F列 1行              A     B    A+B  戻り値 2行    2.0        1.0    1.2   2.2   2 3行    2.2        0.9    1.1   2.0   1 4行    2.4        1.1    1.3   2.4   #N/A 5行    2.6        1.0    1.4   2.4   3 使用している関数は、 E列2行 =C2+D2  F列2行 =MATCH(E2,$A2:$A5,0) E列3行 =C3+D3  F列3行 =MATCH(E3,$A2:$A5,0) E列4行 =C4+D4  F列4行 =MATCH(E4,$A2:$A5,0) E列5行 =C5+D5  F列5行 =MATCH(E5,$A2:$A5,0) です。ここでどうしても、F列4行にエラー値(#N/A)が発生してしまいます。どうしてでしょうか? E列4行とE列5行は同じ値にもかかわらず戻り値が違うのはどうしてでしょうか? また、不思議なことにE列4行に手入力で2.4の値を入力した場合は戻り値は3となり、正しい値を表示します。どうしてでしょうか? 以上、よろしくお願いします。

  • エクセルでMATCH関数結果をアドレスに使いたい

    エクセルでMATCH関数で得た返り値をセルのアドレスに使いたいのです。 具体的には、AF列の6行目から下に向かってランダムに2015/7/25,2015/7/23,2015/7/15.....の ように日付が並んでいます。G6には任意の数値(整数)が入力されてます。E6に任意の日付が入力されております。このとき、E6に入力された任意の日付に対しAF列に入力されているランダムな日付と一致するセルを検索し、そのセルのG6に入力されている数値分下のセルの日付値をF6セルに返すよう、F6セルに計算式を入れたいのです。F6セルには 「=AF(MATCH(E6,AF6:AF2473,0)+5+G6)」のように数式を入力してみたのですが、うまくいかないのです。MATCH関数で得た数値をセルアドレスの数値に使おうとして入れた式なのですが、「#NAME?」と出てしまってうまくいかないのです。すみませんが、ご存じの方いましたらご教示お願いできないでしょうか。よろしくお願い致します。

  • エクセル MATCH関数について

    エクセル2013の練習でMATCH関数とINDEX関数を利用した データを作っていました。 添付した画像のD79でMATCH関数を使って番号を表示しています。 D79に入力した式は=MATCH(C79,B73:B76)です。 指定の行はB73~B76までの4行で、春、夏、秋、冬の順番で並んでいますが C79に春と入力すると、順番としては1番目の春が何故か3と表示されます。 他の夏、秋、冬は順番通り2,3,4と結果が表示されます。 シートの設定を変にしてしまったのかもしれないと新規で開いて試しましたが結果は同じでした。 MATCH関数の検索を行ではなく列側に変えて試しもしましたが、結果は同じでした。 春以外の言葉や数字だとこのようなことは起こりません。 また、リストにしても直接打ち込みにしても同じ結果でした。 この現象を春を使用しない以外に回避する方法がありますでしょうか? 宜しくお願い致します。

  • エクセルの関数組み合わせについて

    エクセルの関数組み合わせでうまくいかず困っています。 (1)あるセルに紙サイズを入力し、別シートにある一覧表行から参照 (2) (1)と同じ行の別セルに部数を入力し、別シートにある一覧表列の以上~未満で参照 (3) (1)と(2)の交差する値を反映。 イメージを添付しました。 以下の式を入れて、サイズと部数から反映できるのですが、以上~未満がうまくいきません。40,000や50,000で入れるとできますが、45,000や47,000などを入れた場合の数式がうまくいきませんでした。 =IF(ISERROR(INDEX(単価表!$B$3:$F$42,MATCH($D6,単価表!$A$3:$A$42,0),MATCH($B6,単価表!$B$2:$F$2,0))),"",(INDEX(単価表!$B$3:$F$42,MATCH($D6,単価表!$A$3:$A$42,0),MATCH($B6,単価表!$B$2:$F$2,0)))) どなたかお力を添えていただければと存じます。 なにとぞよろしくお願いします。

  • EXCEL関数について。

    EXCEL関数について。 下記関数にて、値の取得を行うようにしましたが、 この関数使用時のエラー(#N/A)が 出ないようにする為の数式を教えていただけませでしょうか? 【現在の数式】 =INDEX('01'!$T$8:$W$14,MATCH($C$12,'01'!$S$8:$S$14,0),MATCH($G12,'01'!$T$7:$W$7,0)) この数式の内、最初のMATCH関数  MATCH($C$12,'01'!$S$8:$S$14,0) の中の S8~S14までのセルの間に参照値 C12 の値がない場合に、エラーが出ないように したいのですが、その数式を教えていただけないでしょうか?

  • INDEXとMATCH関数について。

    業務で使用しているファイルにINDEXとMATCHを組み合わせた関数を使っています。 =INDEX(Sheet4!E2:E999,MATCH(Sheet1!F17,Sheet4!A2:A999,0)+2,0) です。 教えて頂きたいことは、 ・上記の関数の説明(詳細)この関数はどういったしくみになっているのか。 ・セルが空白のときに#N/Aを表示させないこと。 ・完全一致型にしたいこと。 この3点を教えて頂けませんか?よろしくお願いします。

  • エクセルの関数

    VLOOKUP関数とINDEX+MATCH関数の使い分けが良く分かりません。 VLOOKUP関数が検索値と完全一致するものを検索         検索値と一致する値がない時データを昇順に並べ替えて検索値未満を検索 INDEX+MATCH関数もMATCH関数があるから似た事ができると思うのですがどうでしょうか? この2つがいまひとつ理解ができません。分かりやすい説明をいただければ幸いです。 よろしくお願いします。

  • match関数とindex関数について

    index関数を次のように用いて、match関数で位置を取りだすことをしたいと考えています。 =index(0/$A$1:A20="休",0) matchは以下の上式を使って、以下のようにします。 =match(1,index(0/$A$1:A20="休",0)) この時、index内において、「休」だけでなく、「祝」も判定したいと考えた場合、上手い式の組み方は考えられるでしょうか。 ご教授願います。

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

    上手く説明できるかどうか不安ですが、質問させてください。 質問は二つあるのですが、 一つ目は・・・ エクセルで作成した表で、『数式と値のクリア』とありますが、 これは選択したセルの数式も値も消えてしまいますよね。 簡単に言うと値だけをクリアしたいんです。 作成した表では、例えば1行目から10行目までの小計が11行目にあり、 続けて12行目から21行目までの小計が22行目にありそれぞれSUM関数が 入っています。 そして、総合計が算出されるように関数が入っています。 この数式というか、関数が入っているセルはクリアしないで、 手入力した値だけをクリアしたいのです。 関数が入っているセルを選ばなければいい事なんですが、 どうも、効率が悪いので。 二つ目は、2つ以上の表があり、その表から条件を満たす値の合計を表したいのですが、 例えば商品券で5000円、10000円、15000円と種類があります。 その種類別に販売枚数の合計を表したいんです。 表のイメージとして、まず得意先別に表を作成しています。何社かあります。 そして、何社かある得意先別の表から商品券別に販売枚数を算出したい表があります。 A社             B社 5000円 3枚 15000円     5000円 2枚 10000円 10000円 2枚 20000円     10000円 0枚   0円                     15000円 1枚 15000円       合計 35000円         合計 25000円 商品券別 5000円 5枚 25000円 10000円 2枚 20000円 15000円 1枚 15000円 このとき、商品券別の5枚、2枚、1枚を関数を使って算出したいです。 二つも質問していまいますが、どなたか分かる方回答おねがいします。

  • Excelの関数で

    お願いします。 Index関数とMatch関数を使用して表の中の値を求めようとしましたが、 検索行が複数あるため、うまくいきません。 検索する列は1列(a,b,c)ですが、検索行(あ、い、う~)が複数になっています。 更に空白もあります。 こんな感じ↓です。 ---------------------   あ  い   う   え      お   か ---------------------    a  10  20  30 b  40  50  60 c  70  80  90 --------------------- こういった場合にはどんな関数を使って一致する値を求めたら良いのでしょうか? 大変困っております。よろしくお願いします。

専門家に質問してみよう