[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『VLOOKUPの検索方向を逆にするには』(ゆき)
検索値と一致する値が範囲の左端に複数ある場合は、最初に検索された値が使用されますが、最後に検索された値が使用されるようにするにはどうすればいいのでしょうか?
単純に考えれば検索方向を逆にすればいいのかなとも思いますが、どうすればそうなるのかわかりません。
日付順に縦に並んでいる全顧客からの注文表を検索範囲として、各顧客の顧客情報表を作成しているのですが、担当者や住所などが経年変化するため、最新の情報を常に得るには検索範囲の下方(日付の新しい方)からデータを拾ってくる必要があるのです。
よろしくお願いします。
Windows 7、Excel2007
よーわからんけど。
A B C D E 1 項目 データ 項目 データ 2 A 1 B 200 3 B 2 4 C 3 5 A 100 6 B 200 7 C 300
D2に検索値・E2に結果
E2 =LOOKUP(1,0/($A$2:$A$7=D2),B2:B7)
こういうことかいな? ※エラー処理なし
(GobGob)
なんで絶対参照にしたんだろ? ま、ええか。
[1] (A2:A7=D2) → 検索対象 A2:A7 が 検索値 D2 と一致しているか? (配列処理)
[2] 0/(A2:A7=D2) → 0を[1]で計算した結果で割り算 (論理値は計算すると1と0で処理)。 当然 0を0(FALSE)で割り算するとエラー。
[3] LOOKUP(1,0/(A2:A7=D2) → [2]の配列結果から1を検索。LOOKUPは検索処理が二分探索で 行うので配列の最後の0の位置を返す。 (LOOKUPはエラーを無視して処理)
[4] =LOOKUP(1,0/(A2:A7=D2),B2:B7) → [3]の位置結果に一致する B列のデータを返す。
こんなかんじですわ。 配列数式ってやつですな。 二分探索に関してはWeb上で検索でもしてみて。
(GobGob)
補足。
1種類に絞るってか、検索値と同じものに絞るってことですな。
検索値は 検索範囲計算結果より大きい数字やないと おかしな結果になる場合があるよ。なんせ二分探索やからね。
あと、このLOOKUPはベクトル形式でなくどっちか言うと配列形式やね。
(GobGob)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.