我有一张包含一些销售数据的主表,简化视图如下:
日期、产品、数量、价格、金额、客户
然后我有另一个包含单个客户的工作簿。我希望能够从主表中提取相应的数据子集,并根据匹配的客户名称将其放置到客户表中。条件(客户名称)是每个客户工作表上的 A1 单元格。如果在主表中添加行时动态更新客户工作表,那就太好了。Excel 版本是 Excel 2016。有没有不使用 VBA 的方法?
答案1
使用此公式可以把记录从一个工作簿拉到另一个工作簿。
{=IFERROR(INDEX([Master.xlsx]Customer!$A$2:$D$100, SMALL(IF(COUNTIF($A$1, [Master.xlsx]Customer!$A$2:$A$100), ROW([Master.xlsx]Customer!$A$2:$D$100)-MIN(ROW([Master.xlsx]Customer!$A$2:$D$100))+1), ROW(A1)), COLUMN(A1)),"")}
注意:
- 记住这是 CSE 公式,所以用Clrl+Shift+回车。
- 在执行此公式之前,请打开 MASTER 工作簿。
- 在目标工作表的 A1 单元格,写下您想要从主文件中提取其记录的客户名称。
- 在标题行后的 A 列中写入公式。
- 在单元格中,您获得客户名称,将公式拖动到“写下来”然后向下拖动。
- 将公式向下拖动几个额外的行,这样当在主文件中添加相同的客户时就会自动拉到工作表中。
- 对其他工作表重复这些步骤,从主表中提取其他客户的记录。
希望这对你有帮助。
笔记, 如果您使用 VBA 代码,即使关闭,也会从主工作簿中提取记录。