dww*_*n66 5 worksheet-function microsoft-excel
很多时候,我有一个公式将函数包装在函数内部的函数中,当某些新条件要求我将另一个函数包装在它周围时,我经常发现自己完全忘记了哪些括号去哪里,哪个函数适用到哪组参数,经常发现自己在修改语句后调试了半个小时,产生了意想不到的结果。
我一直在做的是将函数切成一列中的各个部分……每一行代表一个函数,当我对最终结果感到满意时,我将每一部分复制回它是前一个单元格中的相应位置,直到我完成了一个完整的,并且有希望工作的功能。
考虑:
=IF((ISERROR((VLOOKUP(D2,$A$2:$A9,1,0))),(IF((D2=(VLOOKUP(D2,$A$2:$A$9,1,0))),0,D2)),E2)
0 =IF((ISERROR((VLOOKUP(D2,$A$2:$A9,1,0))),L17,E2)
TRUE =ISERROR((VLOOKUP(D2,$A$2:$A9,1,0))
0 =IF((D2=L18),0,D2)
the =VLOOKUP(D2,$A$2:$A$9,1,0)
Run Code Online (Sandbox Code Playgroud)
能够记录内联或具有类似于 VBA 弹出离子的东西来编辑公式会很棒,但由于不存在,我很想知道还有哪些其他技术可以有效地构建复杂的功能你我发现很有帮助。想法?
以下是我自己使用并建议员工在培训期间使用的一系列主要规则:
IF
s),即,如果您有一列数据要根据特定条件进行解析,请从简单开始- 因此您确定条件按预期工作并返回每种类型的值的正确结果。此外,您可以通过自己的计算替换每个参数(见下文),但这样您就可以确定任何错误/错误结果不是由错误条件本身引起的,否则错误可能会干扰并且整体公式结果完全出乎意料且极难正确的。=IF(LEFT(A1,2)="AB",1,0)
OFFSET
和COUNTA
函数计算。所以,首先OFFSET
使用纯数字构建你的,例如=OFFSET(A1,0,0,1,10)
,确保它返回你真正想要的,然后才开始构建计算部分,例如=OFFSET(A1,0,0,1,COUNTA(A:A)-1)
。Formulas > Evaluate Formula
):对于第一次看到它的人来说,它就像一束光)确实,拥有正确的语法并不意味着通常具有预期/正确的结果,这就像 Excel 调试器。为了提高复杂公式的可读性,您可以使用换行符(可以通过公式栏中的ALT+添加ENTER)以及额外的空格使它们看起来像带有缩进的代码(所有这些在计算公式时都被忽略):
=IF(
LEFT(A1,2)="AB",
MONTH(TODAY()),
MONTH(B1)
)
Run Code Online (Sandbox Code Playgroud)我希望这些建议能让生活更轻松)当然其他回答者会添加一些更有用的观点。
通常,在我看来,跨列拆分较大的公式是最佳做法!
但是,如果您需要构建更大的公式,我建议您执行以下操作:
=IF(A1>SalesThreshold,A1,0)
比=IF(D2>Assumptions!$B$239,D2,0)
=IF(AND(YEAR(B2)=2013,C2="MyProduct",D2>SalesThreshold),D2,0)
就变成=IF(AND(YEAR([Date])=2013,[Product]="MyProduct",[Sales]>SalesThreshold),[Sales],0)
N()
功能进行注释。该函数会将任何文本转换为 0,因此您可以使用这样的函数:=如果( N4>N20+N("快速检查"), N4^2+N("需要平方,因为我想不出更好的例子"), N4/2+N("不知道在这里评论什么!"))
希望有帮助!
归档时间: |
|
查看次数: |
720 次 |
最近记录: |