如何从另一个 Excel 文件获取数据并按名称排序?

如何从另一个 Excel 文件获取数据并按名称排序?

我有 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 向右运行。

如果您想要返回名称列左侧的数据,那么您将需要一个不同的公式。

相关内容