• ベストアンサー

VLOOKUP関数で、一番下の値を拾うには?

以下のような表があるとします。 いちご 50 りんご 30 りんご 40 りんご 70 さとう 20 みかん 10 みかん 20 これで、例えばりんごの値をVLOOKUPで求めた場合 一番上である30が答えとして表示されます。 これを、一番下の70を出すには、どのようにしたら良いのですか?  

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

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

#3の回答者です。 #1様の数式について、私は、#3で詳しくは書きませんでした。すみません。ご質問者さんがエラーが発生するとしたら、このような状況が考えられます。 Excel 2003以下の仕様にはこのような問題があります。 Excel の仕様および制限 計算の仕様 --ワークシートの配列 http://office.microsoft.com/ja-jp/excel/HP051992911041.aspx?pid=CH062527721041 #1の数式は、INDEXは、配列数式です。 「セルの範囲 = 値」というスタイルは、配列数式といいます。一般数式は「ひとつのセル = 値」です。 それは、一旦、キャッシュの中に、計算ステージができて、そこで計算されます。そこから値を取り出すには、INDEX関数やSUMPRODUCT関数を使ったり、配列の確定(F2を押して、『ShiftとCtrlを押しながらEnterキー』を押す)をしたりします。 ですから、INDEX 関数等を使わない場合は、配列の確定をしても同様になります。Office 2007 では、その仕様が変わり、列全体をして指定しても、配列の制限がありません。ただし、広範囲にすると計算が遅くなることがあります。下位バージョンでは、範囲を指定しないと配列は不可能なのです。 ご興味のある方は、以下をごらんください。 Excel で配列を使用する処理の制限について http://support.microsoft.com/kb/166342/ja

すると、全ての回答が全文表示されます。

その他の回答 (4)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.4

NO1です。 提案した関数は配列数式ではなく、ただの配列ですので配列数式の制約(入力完了時のshift+ctrl+enterキー同時押下、列指定はできない)はありません。 尚、当方エクセル2007でしか評価できていませんので一度お試しください。

すると、全ての回答が全文表示されます。
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんにちは。 配列は必要ありません。 C1 に、「りんご」と置きます。 =IF(COUNTIF($A$1:$A$20,$C$1)>0,INDEX($A$1:$B$20,MATCH($C$1,$A$1:$A$20,0)+COUNTIF($A$1:$A$20,$C$1)-1,2),"") なお、配列数式では、列全体を参照することはできません。たとえば、配列で列全体 C:C や範囲 C1:C65536 を参照することはできません。範囲を限定しなけばなりません。 例: =INDEX(B1:B20,MAX(INDEX((A1:A20=C1)*ROW(A1:A20),)))

すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.2

VLOOKUP関数は複数該当の何番目がを指定できない。 また検索表を逆に並べ替えてもダメ。 もしりんご行の中で現状の順序を逆転できれば、使えるかもしれないが並べなおしも、それも難しい。 ーー 配列数式で 例データ りんご 10 りんご 30 りんご 20 りんご 25 他の品目は手抜きで、省略。 空きのセルに =INDEX(B1:B10,MAX(IF(A1:A10="りんご",ROW(A1:A10)))) と入れて、SHIFT、CTRL,ENTERキーを同時押し。 結果 25

すると、全ての回答が全文表示されます。
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

vlookup関数ではできません。 一例です。 仮にA列に品名、B列に値としています。 =INDEX(B:B,MAX(INDEX((A:A="りんご")*ROW(A:A),)))

すると、全ての回答が全文表示されます。

関連するQ&A