2017-03-29 25 views
1

我有隻有ID和交易日期的rawdata。然後我有一個人的名單;他們的ID,他們的僱用日期和他們的名字。從唯一的日期和名稱與人名單匹配得到的名字

我想要的是原始數據中的一個列給我的人名。問題在於,如果該人員退出,則該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的在線 - 可編輯): https://1drv.ms/x/s!AjWVkb2UBexjhzAKMy-YiE5EoKwc

截圖:enter image description here

+2

首先,把你的電腦進入睡眠狀態,去告訴你的老闆不重用人才IDS!如果沒有別的,那麼這個人有可能會回來工作,以及無數的其他因素,使這種做法只是平原錯誤。這個宇宙中有足夠多的數字,新員工可以擁有唯一的ID。考慮考勤卡歷史記錄。 – Jeeped

+0

哇..除了這張特別的表格之外,重複使用身份證是一個實際的問題,因爲我的公司是一個小公司,而且他們連接到許可證 - 每次我僱用某人時都無法獲得新許可證。 –

+1

如果許可證在公司內部不可轉讓,您可能會因不同員工在別名(例如人員ID)下使用這些許可證而違法。 – Jeeped

回答

1

我必須爲您的表命名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)) 

enter image description here

+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)) 

enter image description here

+0

我對People數據進行了排序,並且必須使用內部聚合來獲得正確的結果。 – Jeeped

+0

@Jeeped我看到了,我不想那麼深,或者花時間這樣做。 –