我希望我清楚地理解你的问题,我想建议你一个解决方案,而不写任何VBA代码。
请注意,只有当您的第二个表中的数据集列包含唯一值(但如果没有,则不应该很难找到解决方法)。
为每个驱动器必须在量刑列后您的第一个表,您可以添加一列,因为我的图片在这里做如下:
在每一行,你会比较第一组和第二用你的第二个表格设置值。如果它们的磁盘驱动器值等于单元格列中的磁盘驱动器值,则将标记为TRUE,否则标记为FALSE。
的单元格的公式是这样的一个(让我们在D4我的照片作为参考和你的第二个表):
=IFERROR(IF(AND(INDEX('Second table'!$E$4:$G$8,MATCH(A4,'Second table'!$E$4:$E$8,0),3)=D$3, INDEX('Second table'!$E$4:$G$8,MATCH(B4,'Second table'!$E$4:$E$8,0),3)=D$3)=TRUE, TRUE, FALSE),FALSE)
您将有这个公式适应你的文档中真正的引用。
一旦您的公式准备就绪,您可以将每个磁盘驱动器列的所有单元复制到表的末尾。
您现在可以非常方便地使用SUMIF来计算每个磁盘驱动器的惩罚总和。在我的桌子上面这里我把这个公式单元格D16:
=SUMIF(D4:D14,"TRUE",C4:C14)
如果我没有得到你的问题的意识,不要犹豫,评论我的帖子!
您能否提供Drive 2的计算例子?表2中只有1条记录,所以不清楚如何计算 – Mixaz 2014-11-23 17:23:18
与Mixaz的问题类似:如果磁盘有三个数据集关联,会发生什么? – 2014-11-23 17:26:15
@Mixaz对于驱动器2的计算将是相同的。由于有10个数据集并且只有3个驱动器可以放入,所以每个驱动器都有多个数据集,并且根据表1的数据计算惩罚值。这有帮助吗? – Vivekananda 2014-11-23 17:34:27