我正在寻找一个 Excel 2010 公式,它可以让我检查多个工作簿中的数据。
我有一本工作簿(员工),其中列出了目前雇用的所有员工。
每个部门都有多个工作簿,每个部门都必须对其员工进行核算(部门 1、部门 2、部门 3、部门 4 等)。
是否有一个公式可以确保所有员工都已统计在内?如能提供任何帮助,我将不胜感激。
答案1
这里有两个选项:
- 在汇总工作表中,将该
INDIRECT
函数与每个部门的路径、工作簿、工作表和求和单元格名称的表格结合使用。INDIRECT 函数返回由字符串指定的引用:例如,如果单元格 A1 包含字符串“Sheet1!D19”,则 =INDIRECT(A1) 将给出 Sheet1 的单元格 D19 中的值。
因此,您需要的是汇总表中的一组单元格,其中包含对每个部门工作簿中汇总该部门人员配置的单元格的引用。构建这些引用的表格以及随附的公式可能如下所示。
各部门人员总数的公式(如图中的 F 列所示)计算部门工作簿中的有效单元格引用。我选择从表中的引用构建公式,以便具有灵活性 - 如果需要包含的工作簿列表发生变化,则只需修改表条目,而不是公式本身。
这些公式仅在引用的工作簿打开时才会更新;如果某个部门的工作簿已关闭,则汇总表中该部门的人员总数公式在重新计算值时将返回 #REF! 错误。换句话说,您无法从已关闭的工作簿中提取数据。
- 使用能够从关闭的工作簿中提取数据的 VBA 函数或子程序。
有很多不同的方法可以做到这一点,包括此功能,来自 John Walkenbach 的网站,它仅在 VBA 过程中使用时才有效,并且这个可直接在工作表中使用。我已经测试过两者,它们都按声称的方式工作。