ここから本文です

エクセルの関数を教えてください。

jew********さん

2015/11/3022:07:00

エクセルの関数を教えてください。

_名前_ _所属_ _開始日_ _終了日_
Aさん 人事部 2000/01/01 2007/09/30
Aさん 企画部 2007/10/01 2010/03/31
Aさん 総務部 2010/04/01 2099/12/31
Bさん 営業部 2008/04/01 2012/09/30
Bさん 開発部 2012/10/01 2099/12/31

上記のようなマスタがあります。

【抽出条件】
名前 Aさん
日付 2014/08/31
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
【抽出結果】
所属 総務部←この結果を出したい


抽出条件の名前の人が、指定日に所属していた部署を抽出したいのですが
どのような関数を使えば良いのでしょうか?

閲覧数:
127
回答数:
4
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

maronさん

2015/12/105:30:46

B3=INDEX(Sheet1!B:B,MAX(INDEX((Sheet1!A1:A10=B1)*(Sheet1!C1:C10<=B2)*(Sheet1!D1:D10>=B2)*ROW(A1:A10),)))

B3=INDEX(Sheet1!B:B,MAX(INDEX((Sheet1!A1:A10=B1)*(Sheet1!...

この回答は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜3件/3件中

並び替え:回答日時の
新しい順
|古い順

sun********さん

2015/12/110:05:12

投稿済ご回答から,配列数式の浮上を確認しました

で、当方は配列数式ではなく,
Xl2007未満,以上に対応する式を呈示します。

画像参照

XL2007以上
D9:=IFERROR(LOOKUP(1,1/((A2:A6=B9)*(C2:C6<=C9)*(C9<=D2:D6)),B2:B6),"該当なし")

XL2007未満
D9=IF(SUMPRODUCT((A2:A6=B9)*(C2:C6<=C9)*(C9<=D2:D6)),LOOKUP(1,1/((A2:A6=B9)*(C2:C6<=C9)*(C9<=D2:D6)),B2:B6),"該当なし")

尚,2つの式でA6,C6,D6,は対象表の大きさに規定されてますので、
答欄B8:D9をE列以降に移転すれば、A100,C100,D100に
広げても構いません

//

投稿済ご回答から,配列数式の浮上を確認しました

で、当方は配列数式ではなく,...

mit********さん

2015/12/107:38:09

お示しの表がシート1のA列からD列までの表であるとします。
抽出条件の名前をF1セルに日付をF2セルに入力するとしたらF3セルには例えば次の式を入力すればよいでしょう。

=INDEX(B:B,SUMPRODUCT((A1:A100=F1)*(D1:D100>=F2)*ROW(1:100)))

was********さん

2015/11/3022:48:25

配列数式を使いましょう。
数式入力時に、Ctrl+Shift+Enterと押下して確定します。
次式を配列数式として確定すると、検索日の直前の異動日が返されます。
=MAX((A2:A6="Aさん")*(C2:C6<"2014/08/31"*1)*C2:C6)
そのセルを参照して次式で部署が返されます。
=LOOKUP("Aさん"&異動日,A2:A6&C2:C6,B2:B6)

作業セルを使わずに、
次式を配列数式として確定してください。
=LOOKUP("Aさん"&MAX((A2:A6="Aさん")*(C2:C6<"2014/08/31"*1)*C2:C6),A2:A6&C2:C6,B2:B6)

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる