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

时间:2016-02-07 02:52:42

标签: excel

我正在尝试比较单元格中相同值的两列。并非所有人都匹配。对于匹配的那些,即col B1中的单元格与col D2中的单元格匹配,我想减去A1-C2。 A和B来自一个数据池,C和D来自另一个数据池。应对它们进行比较,如果字符串匹配则减去值。

Image of columns

谢谢

2 个答案:

答案 0 :(得分:0)

要获取匹配字符串列表,请使用此公式。我把它放在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年或更早的时候用这个数组公式替换它:

=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),"")

并复制相同数量的行。

enter image description here

答案 1 :(得分:0)

查看以下公式。它可能会对你有帮助。
E1单元格中的公式:

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

enter image description here

评论后编辑。
如果是带有标题的表格,请使用以下公式:其中包含negative value,其中缺少(我假设)

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

enter image description here