こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

同一データの表引き(VLOOKUP)関数について

同一データの表引き(VLOOKUP)関数について
いつも皆様の回答を参考にしております。
エクセルの表引き関数につきまして、お教えください。

同一の検索値が何行か存在するデータ内から、
開始年月~終了年月の間の月を検索し、表引きすることは可能でしょうか?

年間の業務端末使用料の担当者ごとの集計が必要で、
退職・入社等で担当者が変わったりということが頻繁にあり、(でも、過去のデータとして必要なので、データ表から削除が出来ない状態です。

利用月・番号から担当者を検索したいのですが、
現状、年初に登録した表と、変更のあった場合の表をIFで分けて検索させています。
この状態ですと、担当者が何度も変わってしまう番号の検索が出来ません。

出来れば、検索の表を分けずに(下方向へ入力すれば、開始~終了の日付で検索行を判断する・・・)ような計算式があればご教授ください。
開始日でmax、index等使えば可能かと四苦八苦してみましたが、どうしてもうまくいかず
皆様のお知恵をお貸しいただければと思い 質問いたしました。

投稿日時 - 2011-11-02 14:33:45

QNo.7108697

困ってます

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

とりあえずお手軽の方法で。

前提:
利用日,開始日は「2011/1/1」のように年月日のデータで記入してあり,書式で年月を表示させている
最低限,担当者の対応表は開始日の昇順で並べ替えてある

C3:
=INDEX(H:H,MAX(IF(($E$3:$E$9=B3)*($F$3:$F$9<=A3),ROW($H$3:$H$9))))&""
と記入し,コントロールキーとシフトキーを押しながらEnterして入力する

投稿日時 - 2011-11-02 15:20:09

お礼

keithin様からの回答もイメージしていた計算が出来ました!
(私的にはですが)驚くほど短い計算式で出来るので感動しております・・・
メンテナンスもしやすそうで、大変勉強になりました。
ご回答いただき 有難うございました。

投稿日時 - 2011-11-02 21:18:07

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

エラー処理なしのコア部分のみ(担当なしの場合や未記入時のエラー処理をしていない)
=INDEX($H$3:$H$9,MATCH(1,($E$3:$E$9=B3)*($F$3:$F$9<=A3)*IF($G$3:$G$9="",1,(A3<=$G$3:$G$9)),0))
[Ctrl]+[Shft] +[Enter] で確定、配列数式。{ }で挟まれる
担当が一致、かつ、開始月以上、かつ、終了月があれば終了月以下無ければ1
の配列を返し、
配列からMATCHで1を検索して何番目にあるかを返し、INDEXで担当を返す。
ただし、年月はすべてシリアル値。

投稿日時 - 2011-11-02 15:14:38

お礼

ご回答ありがとうございます。
イメージしていた計算が出来ました!
回答いただいた後に 配列数式の初歩ページを少しだけ見てみたのですが
とても便利な計算式なのですね。
(今まで なんとなく難しそうで避けておりました・・・)
凄く勉強になりました。

投稿日時 - 2011-11-02 21:11:30

あなたにオススメの質問