考虑一个包含员工姓名、年龄和员工经理的表格。员工经理是同一表格中不同行中员工姓名的引用。我尝试通过引用单元格 =A3
现在,如果我按年龄对该表进行排序,员工经理列就会变得混乱,并且不会指向原来的经理。相反,它会指向与旧行相关的内容。
那么,如何从 Excel 2007 中的表格中引用另一行(员工)的行值(经理),以使排序(按年龄)表不会改变它?
答案1
最简单的方法是在表格范围之外创建该Employee Name
列的副本。它可以排序也可以不排序,这无关紧要。它可以位于同一张工作表、不同的工作表甚至不同的工作簿上,只要不是表格的一部分即可。
然后在Manager
列中使用格式输入引用此新范围的公式$E$1
(假设副本在列中E
)
答案2
您需要在其他地方(例如同一文件中的另一个工作表)创建另一个包含员工-经理关系的表。在那里,您可以从现有员工列表中引用经理姓名,就像您目前在原始电子表格中所做的那样。
完成此操作后,您可以使用 VLOOKUP 函数通过员工姓名查找员工的经理。根据上述示例,单元格 C2 的内容将是=Vlookup(A2,Sheet2!$A$2:$B$6,2)
。
这是 VLOOKUP 的语法:VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])
。因此,在我刚刚给出的示例中,lookup_value = 员工单元格,table_array = 新的员工经理表,col_index_num = 2,因为您要返回员工经理表的第二列(经理的姓名)。这假设您已将新的员工经理表放在 Sheet2 上,并开始在单元格 A2 中列出姓名。
即使您的姓名列表“很长”,您也应该能够将其复制/粘贴到新工作表中,以节省您的打字时间。
我希望我已经解释得足够清楚了。此外,为了让 VLOOKUP 正常工作,table_array 必须按字母顺序排序。使用 VLOOKUP 帮助将为您提供更多信息。
答案3
您有员工 ID 列吗?如果没有,请为每个员工添加一个序列号,然后您可以根据经理的员工 ID 执行 VLOOKUP 以获取经理的姓名。
看一下我的例子:
A 列是员工 ID,B 列是员工姓名,C 列是经理的员工 ID,D 列是经理的姓名。
我在 D1 中使用的公式是=VLOOKUP(C1,$A$1:$B$5,2,FALSE)
通过将第四个参数设置为 false,我告诉 VLOOKUP 数据未排序。
默认情况下,或者当参数明确为 true 时,VLOOKUP 会假定数据已排序,并找到一个近似值。将其设置为 false 会强制 VLOOKUP 找到精确匹配。
请注意,第 1 行在 C 列中没有值。Allan 没有经理,因此 D1 显示 #N/A。
答案4
在这些单元格中使用绝对引用,系统就会为您排序。例如;=$A$3