在 Excel 中将特定信息从一个电子表格传输到另一个电子表格
Posted
技术标签:
【中文标题】在 Excel 中将特定信息从一个电子表格传输到另一个电子表格【英文标题】:Transferring specific Info from one spreadsheet to another in Excel 【发布时间】:2017-10-12 19:53:13 【问题描述】:我是 Microsoft Excel 的完全初学者,我正在尝试创建一个工作场所时间表,您可以在其中输入有关轮班的信息(时间、与谁一起工作等),并且该信息会自动复制到其他电子表格选项卡中的发票: (显然是出于保密目的而编造的名字)。
目标是让输入的每个姓名(例如 Charlie、Joseph 等)都有自己的发票,并且只有在时间表中列出的有关该姓名的信息才会传输到相应的发票标签:
例如 - 我们在时间表中看到了两次 Charlie 这个名字。我们将如何做到这一点,以便发票选项卡上的名称显示“此发票用于向查理提供的服务”,并将仅查理的信息(工作时间、小时、日期)添加到该发票的单元格中?其他名字也一样吗?
请让我知道这是否可能,或者我是否不清楚我正在尝试什么。
【问题讨论】:
用公式看起来是可行的。您需要编写公式是发票中有足够数量的行,例如IFERROR(INDEX(MATCH...))
并从时间表中获取适当的行。然后在发票中简单地计算总计字段。我也想知道是否可以使用数据透视表来完成。
嗯,类似于 IFERROR(Invoice(Charlie))?我不太确定如何格式化它。此外,姓名的顺序会因时间表而异,那么如果姓名在时间表上的位置发生变化,该公式是否仍然有效?感谢您的意见
【参考方案1】:
为了让您开始,假设您在发票表的单元格 B11
中有类似 Charlie P
的名称,并且您的发票行从 B15
开始,将第 14 行留空。还假设您的时间表名称为timeSheet
,并且布局与您的图像中的一样...
您可以使用这些数组公式。如图所示在第 14 行输入它们中的每一个,然后按Ctrl+Shift+Enter
。然后复制该行并将其粘贴到一定数量的行。
Formula for Date Column @ B14:
=IFERROR(INDEX(TimeSheet!$C$7:$C$999,MATCH(1, (TimeSheet!$A$7:$A$999& " "&
TimeSheet!$B$7:$B$999=$B$11)*(TimeSheet!$C$7:$C$999>B14),0)),"")
Formula for Service Column @ C14:
=IFERROR(INDEX(TimeSheet!$E$7:$E$999,MATCH(1,(TimeSheet!$A$7:$A$999& " " &
TimeSheet!$B$7:$B$999=$B$11)*(TimeSheet!$C$7:$C999=B15),0)) & " - " &
INDEX(TimeSheet!$E$7:$E$999,MATCH(1,(TimeSheet!$A$7:$A$999& " " &
TimeSheet!$B$7:$B$999=$B$11)*(TimeSheet!$C$7:$C$999=B15),0)), "")
Formula for Hours Column @ D14:
=IFERROR(INDEX(TimeSheet!$G$7:$G999,MATCH(1, (TimeSheet!$A$7:$A$999& " " &
TimeSheet!$B$7:$B$999=$B$11)*(TimeSheet!$C$7:$C$999=B15),0)),"")
这将使您入门。您可以进一步调整,基本上发票表中的其他字段都是直截了当的,即total paid = total hr * rate/hr
等。
【讨论】:
以上是关于在 Excel 中将特定信息从一个电子表格传输到另一个电子表格的主要内容,如果未能解决你的问题,请参考以下文章
在 Excel 中将某些特定单元格从一个工作表复制到另一个工作表的 VBA 可能是啥?