Excel 使用两个不同的表执行SUMPRODUCT、SUMIF

Excel 使用两个不同的表执行SUMPRODUCT、SUMIF,excel,vba,excel-formula,Excel,Vba,Excel Formula,我有两张桌子 表1: 单位(第一栏):aa;bb;复写的副本;dd, 可靠性(第2列):90%;40%; 100%; 2% 表2: 产品(第1栏):A;BCA.A. 单位(第二栏):aa;bb;复写的副本;bb;dd, 吨(第3栏):10吨;20; 30; 40; 三十 对于产品A,考虑到单个公式的可靠性,我如何计算aa、bb和dd单元的总产量 吨A的计算很清楚:10*90%+40*40%+30*2%,但当数据以随机顺序排列时,很难做到这一点 我怀疑可能需要SUMPRODUCT或SUMIF。我非

我有两张桌子

表1: 单位(第一栏):aa;bb;复写的副本;dd, 可靠性(第2列):90%;40%; 100%; 2%

表2: 产品(第1栏):A;BCA.A. 单位(第二栏):aa;bb;复写的副本;bb;dd, 吨(第3栏):10吨;20; 30; 40; 三十

对于产品A,考虑到单个公式的可靠性,我如何计算aa、bb和dd单元的总产量

吨A的计算很清楚:
10*90%+40*40%+30*2%
,但当数据以随机顺序排列时,很难做到这一点

我怀疑可能需要SUMPRODUCT或SUMIF。我非常擅长Excel,并且真诚地认为这是不可能的,所以祝你好运

编辑:我必须声明我想使用一个公式,不需要额外的列来方便计算。


在此方面的任何帮助都将不胜感激。

嗯,有点笨重,如您所见,它使用了两个helper列(如果您愿意,可以组合它们),然后使用sumifs(),如图所示:


cols G和H中的公式显示在数据下方,K2中的公式显示在L2…

您不显示希望结果如何显示

将一列添加到
表2
中,可以使用此数组公式计算总数

=SUM(IFERROR(INDEX(Table1,N(IF(1,MATCH(IF([@Prod]=[Prod],[Unit]),Table1[Unit],0))),2),0)*(([Prod]=[@Prod])*[Tonnes]))
要输入/确认数组公式,请在按住ctrl+shift键的同时按enter键。如果操作正确,Excel将在公式栏中看到的公式周围放置大括号
{…}

如果要为结果创建单独的表,可以调整给定的公式

例如,如果I9包含产品名称,则:

=SUM(IFERROR(INDEX(Table1,N(IF(1,MATCH(IF(I9=Table2[Prod],Table2[Unit]),Table1[Unit],0))),2),0)*((Table2[Prod]=I9)*Table2[Tonnes]))

谢谢您的回复,但我不希望使用其他列。然后您可以研究将显示的计算与sumifs合并。。。正如你最初的帖子所说,这是不可能的——我已经证明了这是可能的,现在添加更多的条件是另一种情况……如何将H列放入L2的公式中?谢谢你的回复,但我不相信这会给我期望的结果。并且还使用了一个我不想做的附加表。@aoken_1在编辑之前我误解了您的问题。请看我最新的答案。我想你已经破解了。只是为了确认@Prod是产品阵列,对吗?事实上,我也不太清楚方括号是什么意思。@aoken_1不。方括号是
结构化引用的一部分。您提到您有
s,所以我假设这就是您所拥有的,并使用了适当的引用。类似于
@Prod
的引用将引用“同一行、同一表、
Prod
列”。看看好的,只是确认一下。您确定键入了上述正确的公式吗?如果您想要一个单一的结果,您希望如何在没有显示唯一产品列表的附加列或表的情况下显示该结果???