IF函数 – 有没有办法避免重复公式
不能相信我不知道这一点,但是如果逻辑testing依赖于if语句,是否有避免在if语句中重复公式的方法?
即
= IF((SUMIFS公式)= 0,“”, SUMIF公式 )
我想在假的场景中用一些简短的SUMIFS函数替代SUMIFS函数,它会告诉它只是以编程方式重复它最初testing的公式。 重复两次公式对处理速度有不利的影响。 也许是微不足道的,但是想在这里寻求最佳的做法。 谢谢。
您可以将一个名称分配给一个公式并使用名称 …………..请参阅:
给公式分配一个名字
相关摘录 –
例如,我们假设我们经常使用如下公式:
=SUM(A1:A100)-SUM(B1:B100)
,它驻留在A101
,并复制到第101行的许多列上。在这种情况下创build一个自定义的公式 ,在101行的每个单元格中都会这样做。1)select单元格A101(这是至关重要的)。
2)转到插入>名称>定义,然后在“工作簿中的名称”框中input:SalesLessCosts
3)现在点击“引用”框并input:
=SUM(A1:A100)-SUM(B1:B100)
然后点击添加。现在您可以用单元格A101中的公式replace:
=SalesLessCosts
。 你也可以在第101行上复制它,它会像公式=SUM(A1:A100)-SUM(B1:B100)
那样改变它的相对引用 。 之所以这样做,是因为我们在插入>名称>定义之前select了A101,并在=SUM(A1:A100)-SUM(B1:B100)
使用相对引用时,我们将其添加到“引用“框。
你可以强制错误,如#DIV/0!
然后使用IFERROR
,例如
=IFERROR(1/(1/SUMIFS_formula),"")
如果你所要做的只是隐藏零,那么有一个简单的方法:
- select你想隐藏零的所有单元格
- 进入自定义数字格式
- 将格式设置为“常规;常规”
自定义格式的结构为[正数]; [负数]; [零]通过使最后一部分变为空白,您实际上隐藏了零,但是显示了其他所有内容。
条件格式的优点是你可以在任何背景上使用它。
我有时使用的一个巧妙的技巧是通过使用“;;;”的自定义格式完全隐藏单元格的值。 这样,您可以将图像放入单元格中,例如条件格式化的图像,而不会看到任何值。
在这个问题上使用了一定量的咖啡因之后才发现这一点。 尝试使用这样的SUBSTITUTE
function:
=SUBSTITUTE( VLOOKUP( H4; $D$5:$E$8; 2; 0 ); $H$1; $I$1 )
这里是一个例子:
这里我不想重复两次的公式是VLOOKUP
函数。 VLOOKUP
的结果是在另一个表中find的string(例如:“Green”)。
我想检查该string是否与$H$1
中的特定string值匹配(这里是“Yellow”)。
- 如果是这样,
SUBSTITUTE
用$I$1
replace它(你想要的错误string,这里是“FORBIDDEN”)。 - 如果没有,则显示
VLOOKUP
结果string(正常的授权输出,如“绿色”)。
我的实际公式很长,这就是为什么我不想写两遍。 我也不想使用两个不同的单元格,因为我已经将这个公式应用于10列,这意味着我应该添加额外的10列,使其工作。
这里是一个黑客 – 取决于你是否只是对显示值感兴趣,或者你是否需要使用另一个公式中的值:
把你的SUMIF
公式放在单元格中(没有IF
部分)
创build条件格式设置规则,在单元格值为0
时将字体颜色设置为背景颜色
嘿,你得到期望的结果。
正如我所说 – 这是一个黑客,但它确实阻止了双重评估。
我没有意识到“干净”的解决scheme。
在某些情况下, MAX()
或MIN()
可以做一个很好的工作。
例如,这样的事情:
=IF(SUMIFSformula>0,SUMIFSformula, 0)
可以缩短到这个:
=MAX(0,SUMIFSformula)