不能相信我不知道这一点,但如果逻辑测试依赖于它,有没有办法避免在if语句中重复公式?
即
= IF((SUMIFS公式)= 0,"", SUMIFs公式)
我想在错误的场景中用短的替换那个SUMIFS函数,这将告诉它只是以编程方式重复它最初测试的公式。重复两次公式必然会对处理速度产生不利影响。也许可以忽略不计,但想要在这里寻求最佳实践。感谢。
答案 0 :(得分:24)
您可以强制执行#DIV/0!
之类的错误,然后使用IFERROR
,例如
=IFERROR(1/(1/SUMIFS_formula),"")
答案 1 :(得分:8)
您可以为公式指定名称并使用名称 ..............参见:
相关摘录 -
例如,假设我们经常使用如下公式:
=SUM(A1:A100)-SUM(B1:B100)
,它位于A101
,并被复制到第101行的许多列中。在这种情况下,最好是 创建一个自定义公式,在第101行的每个单元格中执行此操作。这里 是如何;1)选择单元格A101(这是至关重要的)。
2)转到插入>名称>定义和 在"工作簿中的名称"框类型:SalesLessCosts
3)现在点击进入 "指的是"框和类型:
=SUM(A1:A100)-SUM(B1:B100)
然后单击 添加。现在,您可以使用
=SalesLessCosts
替换单元格A101中的公式。 您也可以在第101行复制它,将更改其相对值 参考就像公式=SUM(A1:A100)-SUM(B1:B100)
一样。该 这样做的原因完全取决于我们之前选择A101的事实 转到插入>名称>在中定义和使用相对引用=SUM(A1:A100)-SUM(B1:B100)
当我们将其添加到"指的是"框。
答案 2 :(得分:4)
如果你需要做的只是隐藏零,有一个简单的方法:
自定义格式的结构为[正数]; [负数]; [零] 通过将最后一部分留空,您实际上隐藏了零,但显示了其他所有内容。
优于条件格式的优点是您可以在任何背景上使用它。
我有时使用的一个巧妙的技巧是使用&#34 ;;;;"的自定义格式完全隐藏单元格值。这样,您可以将图像放在单元格内,就像条件格式化图像一样,根本看不到值。
答案 3 :(得分:2)
尝试使用SUBSTITUTE
这样的功能:
=SUBSTITUTE( VLOOKUP( H4; $D$5:$E$8; 2; 0 ); $H$1; $I$1 )
以下是一个例子:
这里我不想重复两次的公式是VLOOKUP
函数。
VLOOKUP
的结果是在另一个表中找到的字符串(例如:" Green")。
我想检查该字符串是否与$H$1
中的特定字符串值匹配(此处为"黄色")。
SUBSTITUTE
将其替换为$I$1
(您想要的错误字符串。此处," FORBIDDEN")。 VLOOKUP
结果字符串(正常的授权输出,如"绿色")。 这对我很有用,因为我的实际公式很长,所以我不想写两次。 我也不想使用两个不同的单元格,因为我已经在10列上应用了这个公式,这意味着我应该添加额外的10列以使其工作。
答案 4 :(得分:1)
实际上,自Excel 2007以来,IFERROR语句完全 OP所要求的内容。从帮助文件:
说明强> 如果公式求值为错误,则返回指定的值; 否则,返回公式的结果。 [斜体矿]
<强>语法:强>
IFERROR(value, value_if_error)
答案 5 :(得分:0)
这是一个黑客 - 取决于您是否只对显示的值感兴趣,或者您是否需要在另一个公式中使用该值:
将您的SUMIF
公式放入单元格(不包含IF
部分)
创建条件格式设置规则,当单元格值为0
时,将字体颜色设置为背景颜色
嘿,你得到了理想的结果。
正如我所说 - 这是一个黑客,但它确实阻止了双重评估。
我没有注意到“干净”的解决方案。
答案 6 :(得分:0)
在某些情况下,MAX()
或MIN()
可以做得很好。
,例如:
=IF(SUMIFSformula>0,SUMIFSformula, 0)
可缩短为:
=MAX(0,SUMIFSformula)