Lor*_*nzo 22 excel if-statement excel-formula
无法相信我不知道这一点,但有没有办法避免在if语句中重复一个公式,如果逻辑测试依赖于它?
即
= IF((SUMIFS公式)= 0,"",SUMIFs公式)
我想在错误的场景中用短的替换那个SUMIFS函数,这将告诉它只是以编程方式重复它最初测试的公式.重复两次公式必然会对处理速度产生不利影响.也许可以忽略不计,但想要在这里寻求最佳实践.谢谢.
bar*_*ini 24
您可以强制执行错误#DIV/0!,然后使用IFERROR,例如
=IFERROR(1/(1/SUMIFS_formula),"")
该LET公式可用于这种具体情况。您可以将公式定义为变量,然后在同一单元格中您可以在公式中引用该变量。
LET格式如下所示:=LET(name,name_value,calculation)
Run Code Online (Sandbox Code Playgroud)
以下是它如何与您的 SUMIF 示例一起使用,这样您就不必重复公式:
在此屏幕截图中,我们有一个数组 A1:B7。如果 ColA 中的名称是“apple”,我们想要对值(Col B)求和。
为此,我们有一个标准 SUMIFS 公式:
=SUMIFS(B1:B7,A1:A7,"apple")
Run Code Online (Sandbox Code Playgroud)
公式如E2所示。结果如 E3 所示。
为了将其放入IF语句中而不必重复公式,我们可以使用LET如屏幕截图所示的公式。
我们使用公式创建一个变量SUMIFS作为该变量的值。然后,我们IF使用变量名称编写语句,而不是多次重写公式。
=LET(name,name_value,calculation)
Run Code Online (Sandbox Code Playgroud)
变量名称: sumapples
变量值:SUMIFS(B1:B7,A1:A7,"apple")
计算: IF(sumapples=0,"",sumapples)
把它放在LET函数中看起来像这样:
=LET(sumapples,SUMIFS(B1:B7,A1:B7,"apple"),IF(sumapples=0,"",sumapples))
Run Code Online (Sandbox Code Playgroud)
此LET函数可用于任何 Excel 公式,对于缩短具有重复的长公式非常有用。
如果您愿意,可以通过命名多个变量来变得更加复杂。
=LET(name,name_value,name2,name_value2,calculation)
Run Code Online (Sandbox Code Playgroud)
您可以为公式指定名称并使用名称 ..............参见:
相关摘录 -
例如,假设我们经常使用如下公式:
=SUM(A1:A100)-SUM(B1:B100)并且它驻留在A101第101行的许多列中并且被复制.在这种情况下,最好创建一个自定义公式,在第101行的每个单元格中执行此操作.这是怎么样;1)选择单元格A101(这是至关重要的).
2)转到"插入">"名称">"定义",然后在"工作簿中的名称"框中键入:SalesLessCosts
3)现在单击"引用"框并键入:
=SUM(A1:A100)-SUM(B1:B100)然后单击"添加".现在,您可以将单元格A101中的公式替换为:
=SalesLessCosts.您也可以在第101行复制它,它将像公式一样更改其相对引用=SUM(A1:A100)-SUM(B1:B100).这样做的原因完全取决于我们在进入"插入">"名称">"定义"之前选择A101的事实,并在=SUM(A1:A100)-SUM(B1:B100)我们将其添加到"引用"框时使用了相对引用 .
如果您需要做的只是隐藏零,有一个简单的方法:
自定义格式的结构为 [正数];[负数];[零] 通过将最后一部分设为空白,您可以有效地隐藏零,但会显示其他所有内容。
与条件格式相比的优势在于您可以在任何背景下使用它。
我有时使用的一个巧妙技巧是使用“;;;”的自定义格式完全隐藏单元格值。通过这种方式,您可以将图像放在单元格内,例如条件格式的图像,而根本看不到值。
| 归档时间: |
|
| 查看次数: |
15175 次 |
| 最近记录: |