Excel 查找列A&;所在的行;B列C的匹配和和和=0

Excel 查找列A&;所在的行;B列C的匹配和和和=0,excel,Excel,大家好 我正在寻找一种在以下条件下查找行的方法: 列A的值匹配,列B的值匹配,列C的值添加到0 我'我尝试了sumproduct的条件格式,但没有多大成功 =SUMPRODUCT(($C$1:$C$9)*($A$1:$A$9=$A1)*($B$1:$B$9=$B1))=0 也许可以使用VLOOKUP?任何建议都将不胜感激 如果这不是一个很大的表,并且您希望所有行a和B都匹配,那么试试这个?(警告:我正在打电话,等我女儿,所以可能有打字错误…) 或者,如果高亮显示矩形并插入表格,则创建


大家好

我正在寻找一种在以下条件下查找行的方法:

列A的值匹配,列B的值匹配,列C的值添加到0

我'我尝试了sumproduct的条件格式,但没有多大成功

=SUMPRODUCT(($C$1:$C$9)*($A$1:$A$9=$A1)*($B$1:$B$9=$B1))=0

也许可以使用
VLOOKUP
?任何建议都将不胜感激

如果这不是一个很大的表,并且您希望所有行a和B都匹配,那么试试这个?(警告:我正在打电话,等我女儿,所以可能有打字错误…)

或者,如果高亮显示矩形并插入表格,则创建一个公式为的新列

=SUMIFS([USD], [Deal], [@Deal], [Item], [@Item]) = 0
然后将该列用于条件格式公式,如果愿意,可以隐藏该列。这样更容易阅读,只需输入一次公式,而不是将其拖到列中,它将存储一次,而不是每行存储一次

如果它是一个巨大的表,那么您需要创建一个透视表,然后使用它,因为对原始表中的每一行执行此操作可能会比透视表慢很多,但是使用数据透视表的用户友好性较差,因为除非您在任何情况下进行VBA刷新数据透视表,否则更改不是即时的。

我使用了两个辅助列。您可以将这些隐藏在电子表格中。可乐=可乐和可乐。F列有以下公式:

SUMIFS(C$1:C$8, E$1:E$8, E1) = 0
这表示如果列C中的值之和=0,其中列E与当前行匹配,则为TRUE,否则为FALSE

然后我为A1:C8添加了一个条件规则,以黄色突出显示。规则是

=$F1 
这表示如果该行的col F为true,则高亮显示该行。我想这会满足你的要求


请注意,我突出显示的结果与您的不同。您将在B列A+B列中显示2行1015,突出显示。为什么会这样?(50)+50+50不等于0?(感谢Jerry J指出了这一点。)

也许有比我更聪明的人能想出在没有帮助栏的情况下如何做到这一点。在此之前,有一种方法可以做到:

您只需要一个helper列—一个对a和B的每个值进行运行合计的列。因此,将其放入D2并将其一直复制到D9:

=SUMIFS($C$2:$C2,$A$2:$A2,$A2,$B$2:$B2,$B2)
这将对当前单元格上具有相同A和B的所有值求和。这样做的目的是找到行最终和为零的位置

然后,您可以在条件格式中使用此选项:

=COUNTIFS($D2:$D$9,0,$A2:$A$9,$A2,$B2:$B$9,$B2)
这将在具有相同A和B的当前单元格下方找到零。因此,它不包括具有相同A和B且低于0的单元格

如果你把第二个公式放在E2中,然后一直复制到E9,它看起来是这样的:

A. B C D E 处理 项目 美元 运行总数 条件格式 1010 A. 100 100 1. 1015 A. -100 -100 0 1010 A. -99 1. 1. 1010 A. -1 0 1. 1010 B -100 -100 0 1015 B -50 -50 1. 1015 B 50 0 1. 1015 B 50 50 0
您试图找到A列=B列的位置;列C=0?如果公式带有嵌套的
,为什么不使用
?如果我没有弄错你的问题,我会用这样的话:
=If(and([ColA]=[ColB],[ColC]=0),[do stuff],[do other stuff]
,否则你可能不得不重新表述你的问题,因为不清楚条件是什么。不确定为什么需要调用vlookup或sumproduct。不清楚你在问什么。“A列的值与C列的值匹配"对于哪些行?所有行?部分行?直到达到某个条件?您是否像上面的示例中所示比较9行?9行一组?我们需要一些帮助来理解您试图做什么。@DavidRichardson因为他的第二个突出显示的集合是第7行和第8行,而不是第9行,我想他的意思是直到满足sum=0条件为止。第7行和第8行或者第7行和第9行都会这样做,但所有带1015和B的行都不会这样做。您的sumproduct可能是错误的,它应该是
=sumproduct(-)($A$2:$A$9=$A8),-($B$2:$B$9=$B8),$C$2:$C$9)
,但即使这样,它也不会做您想要做的事情,因为它不会为第二个带1015和B的集合生成0。它将所有带1015和B的行相加(第7行、第8行和第9行)并生成50的和。但您不希望它将所有行与1015和B相加-您只希望将它们相加,直到它们为0为止(因此仅第7行和第8行)。给定a-B值对的运行总和是否从正到负(或从负到正)交叉如果没有一行,运行总数为零?即,对于给定的a和B值,它们的C值是否可能为[-100,50,60,50],从而导致该a-B对的运行总数为[-100,-50,10,60],从负到正,中间没有0?你的公式找不到1015的第二个突出显示集。实际上,我不认为他试图突出显示所有a和B匹配的行,并且所有行的总和都是0-我认为他试图突出显示a和B匹配的和为0的行的子集。找到一个子集是很困难的,因为它需要排列,因为第二个集合可能是第7行和第8行或第7行和第9行。啊!谢谢。是的,我没有注意到突出显示的重要性,但我担心这就是他实际上是什么,这就是为什么我包含了“a和B匹配的所有行”警告。我不确定这是否有任何区别,但你的A8单元格与问题中的A8单元格不包含相同的值…@Jerry Ugh…不幸的输入错误,因为它确实很重要。这给OP带来了一个问题:他突出显示了1015+B的前两行。我不明白什么逻辑会这样做。共有3行1015+B和C列它们的总数不等于0。我想他想突出显示行(按列A和B分组)直到C中的运行总和达到0-但这意味着使用VBA循环高亮显示行,直到总和为0,或者查找具有相同A和B的行的所有排列,然后选择一个总和为0的行。我想可能有一种方法可以使用helper co来实现这一点
=COUNTIFS($D2:$D$9,0,$A2:$A$9,$A2,$B2:$B$9,$B2)