如何对比不同工作表中的两个值并返回差值?现有公式求助
跨工作表求和并条件返回的Excel公式解决方案
我明白你的需求:针对Sheet1每行的A列目标值,将自身E列的邻居统计数,加上Sheet2中同A列值对应的所有E列统计数的总和;如果这个总和大于2,返回总和与2的差值,否则返回0。你之前的公式没写完,而且误用了AVERAGEIFS(这是求平均的函数),咱们换成SUMIF来实现求和逻辑,直接给出正确公式:
适用公式(Sheet1的F2单元格,下拉填充)
=MAX(0, E2 + SUMIF(Sheet2!A:A, A2, Sheet2!E:E) - 2)
逐部分解释:
SUMIF(Sheet2!A:A, A2, Sheet2!E:E):在Sheet2的A列匹配当前行的A2值,把所有匹配行的E列数值求和,得到Sheet2中对应目标值的邻居总数。E2 + SUMIF(...):将Sheet1当前行自己的邻居数(E2)和Sheet2的求和结果相加,得到跨表的总邻居数。MAX(0, 总邻居数 - 2):如果总邻居数减2的结果为正,就返回这个差值;如果结果≤0,直接返回0,完美符合你“总和大于2返回差值,否则返回0”的要求。
优化建议:
如果你的数据不是整列都有内容(比如只到第100行),建议把整列引用改成具体范围(例如Sheet2!A2:A100、Sheet2!E2:E100),这样能提升公式的计算效率,避免对空单元格的无效计算。另外,SUMIF在没有匹配值时会自动返回0,所以不需要额外加IFERROR处理,逻辑更简洁。
内容的提问来源于stack exchange,提问作者aab
相关产品推荐
相关产品推荐

