
我有2個excel文件,其中一個是工人列表,另一個是缺勤列表。我需要將缺勤清單中的原因和結束日期提取到主清單中,並將其放在正確的名稱下。現在我必須手動執行此操作,但由於主列表上有 1000 多個名字,缺席列表上有 800 多個名字,所以它很快就會過時。
E:好吧,讓我們再試一次。
主列表格式:
A | B | C | D | E | F | G |
Basic unit|Name|Birthdate|Position|Permanent|starting date|ending date|
缺勤格式:
A | B | C | D | E | F | G | H | I | J
Employee ID# | Unit | Unit name | Name | # | Absence reason | payment | starting date | ending date | length
今天我得到了更詳細的排序標準,如果缺勤時間超過一個月且無薪,我需要將缺勤添加到主列表中,並且當滿足這些標準時我需要
Absence reason, starting date - ending date
新增至主清單 H2 並向下新增對應名稱。現在我可以這樣做,以便在缺勤清單上建立額外的列,將所需的資訊合併到 K2 中:
=F2&", "& TEXT(A1,"dd/mm/yy")&" - "&TEXT(B1,"dd/mm/yy")
所以現在我需要一個公式來檢查長度是否>30並且工資是否為“無工資”。
另外,我是芬蘭人,這意味著我的 Excel 是芬蘭語,這意味著我必須透過翻譯器運行公式,目前我正在使用http://en.excel-translator.de/translator/
E2:我對缺勤列表進行了排序,以便只留下我需要的列表,因此我不需要檢查任何內容即可獲取並放置在主列表上的相應名稱上。
答案1
由於您沒有顯示缺勤列表,我們假設它包含以下列
名稱 |開始日期 |結束日期 |缺勤原因
將兩列新增到您的員工表中並像這樣使用 vlookup
=iferror(vlookup(A2,[Absences.xls]Sheet1!$A$1:$D$1000,3,false),"")
如果可以在缺勤清單中找到儲存格 A2 中的姓名,這將傳回結束日期。對於缺勤原因,使用 a4
作為 Vlookup 的第三個參數
編輯:使用評論中提供的列結構
A | B | C | D | E | F | G | H | I | J
Employee ID# | Unit | Unit name | Name | # | Absence reason | payment | starting date | ending date | length
假設第一列位於 A 列,並且假設「名稱」列包含符合的名稱,則缺勤原因的公式為
=iferror(vlookup(A2,'[the file.xlsx]the sheet'!$D$1:$I$1000,3,false),"")
以及結束日期
=iferror(vlookup(A2,'[the file.xlsx]the sheet'!$D$1:$I$1000,6,false),"")
調整文件和工作表名稱以適應。
請記住,Vlookup 使用查找表的第一列來查找匹配項,因此我們在 D 列中啟動查找表,該列保存名稱。 Vlookup 是向右工作的。
如果您想將資料傳回「名稱」列的左側,那麼您需要不同的公式。