在不同的工作表上匹配,提取和添加不同单元格中的数字

时间:2017-10-26 23:13:57

标签: excel vba excel-vba excel-formula

我在D栏中有'JobSheet1'的数据,我有升序的发票号码(有些是在同一订单上的不同产品重复),在E栏中,我的金额是50英镑。

在B栏的第二张“发票单1”中,我有发票编号,而C列是我希望每张发票号码显示的总数。

任何人都可以使用非常简单的VBA或公式来帮助搜索“JobSheet1”列D中的发票编号,并添加E列中所有匹配的发票编号总数。

3 个答案:

答案 0 :(得分:0)

Scott Craner是对的,根据您描述的模式,您将获得想要进入单元格Ci:Cj(其中“i”和“j”是 你的表的开头和结尾分别是:

=SUMIFS('JobSheet1'!E:E,'JobSheet1'D:D,B{i...j})

如果这不起作用,您需要注意的问题可能是:

  1. 表单的名称与您在此处输入的名称完全不同。也许他们有领先或尾随的空间。
  2. 您的Excel / Windows副本可能设置了不同的区域设置,这要求公式参数用分号(;)而不是逗号分隔。
  3. 您的发票编号在两个不同的公式中的输入可能不完全相同。
  4. 您在E栏中的金额可能不会存储为数字值。您可以通过从E列中选择一些值来测试这一点 - 如果excel没有在右下角显示它们的总和和平均值,它们将作为文本存储,您无法对它们执行数学运算。
  5. 我需要查看您的数据以查看可能存在的问题,但这不是本论坛的用途 - 尝试使用您在此处描述的虚拟数据设置构建一个新表并尝试使用此公式,验证它是否有效。然后,根据需要进行相应调整。

答案 1 :(得分:0)

假设您在InvoiceSheet1中的第一个发票编号位于单元格b3中,您可以使用: = SUMIF(JobSheet1 d:!!! d,InvoiceSheet1 B3,JobSheet1 E:E)。

如果它在另一行中,请将InvoiceSheet!B3替换为数据开始的相关单元格。复制其他发票的公式

只需一个查找条件就不需要SUMIFS。

答案 2 :(得分:0)

我通过修改ScottCraner的SUMIFS建议来解决这个问题,这就是我最终的结果

= SUMIFS(作业K:!K,作业一个:A,D3)+ SUMIFS(作业L:!L,工作!A:A,D3)

这份工作!