Excel – 比较两列,如果匹配减去匹配行中其他两列的值

我试图在单元格中比较两列的相同值。 并不是所有的匹配。 对于那些匹配的,即col B1中的单元格与D2中的单元格匹配,我想要减去A1-C2。 A和B来自一个数据池,C和D来自另一个数据池。 应该比较它们,并且如果string匹配,则减去值。

列的形象

谢谢

要获得匹配string的列表,然后使用此公式。 我把它放在F1中:

=IFERROR(INDEX($D$1:$D$500,AGGREGATE(15,6,ROW($1:$500)/(COUNTIF($B$1:$B$500,$D$1:$D$500)),ROW(1:1))),"") 

并尽可能复制下来。 这个公式只有在2010年或以后才有效。

如果您有2007或更早的版本,请使用此数组公式replace它:

 =IFERROR(INDEX($D$1:$D$500,SMALL(IF(COUNTIF($B$1:$B$500,$D$1:$D$500),ROW($1:$500)),ROW(1:1))),"") 

在离开编辑模式时,您需要使用Ctrl-Shift-Enter而不是Enter来确认。

然后在G1我把:

 =IF(F1<>"",SUMIF(B:B,F1,A:A)-SUMIF(D:D,F1,C:C),"") 

并复制相同数量的行。

在这里输入图像说明

看看下面的公式。 它可以帮助你。
E1单元格中的公式:

 =IF(ISNUMBER(MATCH(D1,$B$1:$B$4,0)),INDIRECT("A"&MATCH(D1,$B$1:$B$4,0))-C1,"") 

在这里输入图像说明

在评论后编辑。
在带表头的情况下,使用以下公式:其包含的negative value缺失(正如我所假设的)

 =IF(ISNUMBER(MATCH([Data4],[Data2],0)),INDIRECT("B"&(MATCH([Data4],[Data2],0)+ROW($B$3)))-[Data3],[Data3]*(-1)) 

在这里输入图像说明