• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:同一データの表引き(VLOOKUP)関数について)

エクセルの表引き関数について

このQ&Aのポイント
  • エクセルの表引き関数(VLOOKUP)について、同一の検索値が存在するデータ内で、開始年月から終了年月の間の月を検索し、表引きする方法を教えてください。
  • 年間の業務端末使用料の担当者ごとの集計が必要であり、退職や入社による担当者の変更も頻繁に発生しています。しかし、過去のデータを保持するためデータ表から削除はできません。利用月と番号から担当者を検索したいのですが、現状では年初に登録した表と変更のあった場合の表を別々に検索しています。表を分けずに開始日と終了日で検索する方法があれば教えてください。
  • エクセルの表引き関数(VLOOKUP)を使用して、同一の検索値が存在するデータ内で、開始年月から終了年月の間の月を検索し、表引きする方法を教えてください。年間の業務端末使用料の担当者ごとの集計が必要であり、過去のデータを保持するためデータ表から削除はできません。利用月と番号から担当者を検索するために、表を分けずに開始日と終了日で検索する計算式を教えてください。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

とりあえずお手軽の方法で。 前提: 利用日,開始日は「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して入力する

hiposi
質問者

お礼

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

その他の回答 (1)

回答No.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で担当を返す。 ただし、年月はすべてシリアル値。

hiposi
質問者

お礼

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

関連するQ&A