我的rawdata只有ID和交易日期。然后我有一份人员名单;他们的身份证,他们的雇用日期和姓名。
我想要的是rawdata中的一列,它为我提供了人名。问题是,如果该人退出,则重新使用该ID,并且另一个人启动。
由于我有交易日期,我认为应该可以检查:
如果交易与他们被雇用的时间匹配,那么获得正确的名称。
这可能,然后如何?
Rawdata:
Column A = Transaction date
Column B = ID
Column C = Here I want their name
People list:
Column A = ID
Column B = Name
Column C = Hire date
示例(Excel Online - 可以编辑): https://1drv.ms/x/s!AjWVkb2UBexjhzAKMy-YiE5EoKwc
答案 0 :(得分:2)
确保您的参考表按时间顺序从最旧到最新排序:
=INDEX(F:F,AGGREGATE(14,6,ROW($G$8:INDEX(G:G,MATCH(1E+99,E:E)))/(($E$8:INDEX(E:E,MATCH(1E+99,E:E))=B8)*($G$8:INDEX(G:G,MATCH(1E+99,E:E))<A8)),1))
答案 1 :(得分:1)
我必须将表 People 和 Raw_Data 命名为在公式中使用结构化表引用。另外,我添加了一些数据并更改了几个日期。
=INDEX(People[Agent Name], AGGREGATE(15,6, (ROW(People[Personal ID])-ROW(People[[#Headers],[Agent Name]]))/((People[Personal ID]=[@[Personal ID]])*(People[Hire date]=AGGREGATE(14, 6, (People[Hire date])/((People[Personal ID]=[@[Personal ID]])*(People[Hire date]<=[@[Transaction date]])), 1))), 1))