ExcelのVlookupで複数の同じ数値があった場合で下の方の数字を出す方法はありますか?具体的には銀行の日付毎の残高を取得したいのですが、Vlookupだと最初の取引の日の数字を参照してしまいます。何かいい方法はないでしょうか?

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2011/06/03 11:34:54
  • 終了:2011/06/07 09:09:09

ベストアンサー

id:SALINGER No.1

SALINGER回答回数3430ベストアンサー獲得回数9692011/06/03 12:07:52

普通にVLOOKUPでは一番最初にマッチした値となります。

処理的には重くなるので大きなデータでは使えませんが、配列数式を使えば一番最後の値を取得することは可能です。


例えば次ぎのようなグラフならば

AB
1日付残高
2
3
4
5
6

例えば、調べる日付をC1にいれて

=INDEX(B:B,LARGE(IF(A2:A6=C1,ROW(A2:A6),0),1))

を入れてCtrl+Shift+Enterで{}で囲って配列数式にすることで残高を取得できます。

id:sudden102102

ありがとうございます。確かに動きましたが、ちょっと重いですね^^;

でもこれを参考にIndex関数とcountif関数とmatch関数で同様のことが実現できました。日付がシリアル値でなかったもので・・・

2011/06/07 09:07:19

その他の回答(1件)

id:SALINGER No.1

SALINGER回答回数3430ベストアンサー獲得回数9692011/06/03 12:07:52ここでベストアンサー

普通にVLOOKUPでは一番最初にマッチした値となります。

処理的には重くなるので大きなデータでは使えませんが、配列数式を使えば一番最後の値を取得することは可能です。


例えば次ぎのようなグラフならば

AB
1日付残高
2
3
4
5
6

例えば、調べる日付をC1にいれて

=INDEX(B:B,LARGE(IF(A2:A6=C1,ROW(A2:A6),0),1))

を入れてCtrl+Shift+Enterで{}で囲って配列数式にすることで残高を取得できます。

id:sudden102102

ありがとうございます。確かに動きましたが、ちょっと重いですね^^;

でもこれを参考にIndex関数とcountif関数とmatch関数で同様のことが実現できました。日付がシリアル値でなかったもので・・・

2011/06/07 09:07:19
id:windofjuly No.2

うぃんど回答回数2625ベストアンサー獲得回数11492011/06/03 15:40:49

その列の中身が1から31までの数値ではなく

日付型(書式設定で日だけを表示)であるならば

LOOKUPを用いるかVLOOKUPの第四引数をTRUEにしてみてください

 

id:SALINGER さんからコメントいただき、取り消し線を入れました

  • id:SALINGER
    第4引数をTRUEにすれば日付だけではなく数値でも一番下を返すのですが、日付が見つからない場合違う値を返してしまうと考えましたが、
    残高の場合、取引の日付が無い場合直前の残高と同じと考えるとそれでいいですね。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません