通过不 运行 两次相同的计算使 Excel 公式更有效
Make Excel formula more efficient by not running the same calculation twice
我正在尝试通过不重复自身来提高公式密集型工作表的效率。我有循环公式,其中我使用 SUMIF(S) 值,但前提是它不为零。所以他们是这样写的:
=IF(SUMIF(Table1[ACCOUNT],[@ACCOUNT],Table1[ACTUAL_VAL])<>0,SUMIF(Table1[ACCOUNT],[@ACCOUNT],Table1[ACTUAL_VAL]),"")
所以基本上我有公式 SUMIF(X),如果不为 0,则为 SUMIF(X)。在同一个公式中两次是相同的工作。无论如何要简化它以节省资源?
我想我可以在 VBA 中创建自定义函数,但我需要的次数和变化量似乎过多。
那里有一个副本,但我找不到它。
使用倒数的倒数:
=IFERROR(1/(1/SUMIF(Table1[ACCOUNT],[@ACCOUNT],Table1[ACTUAL_VAL])),"")
对于 Office 365,我们可以使用 LET:
=LET(x,SUMIF(Table1[ACCOUNT],[@ACCOUNT],Table1[ACTUAL_VAL]),IF(x=0,"",x))
如@GSerg 所述(抱歉看到您的评论时正在打字)
我正在尝试通过不重复自身来提高公式密集型工作表的效率。我有循环公式,其中我使用 SUMIF(S) 值,但前提是它不为零。所以他们是这样写的:
=IF(SUMIF(Table1[ACCOUNT],[@ACCOUNT],Table1[ACTUAL_VAL])<>0,SUMIF(Table1[ACCOUNT],[@ACCOUNT],Table1[ACTUAL_VAL]),"")
所以基本上我有公式 SUMIF(X),如果不为 0,则为 SUMIF(X)。在同一个公式中两次是相同的工作。无论如何要简化它以节省资源?
我想我可以在 VBA 中创建自定义函数,但我需要的次数和变化量似乎过多。
那里有一个副本,但我找不到它。
使用倒数的倒数:
=IFERROR(1/(1/SUMIF(Table1[ACCOUNT],[@ACCOUNT],Table1[ACTUAL_VAL])),"")
对于 Office 365,我们可以使用 LET:
=LET(x,SUMIF(Table1[ACCOUNT],[@ACCOUNT],Table1[ACTUAL_VAL]),IF(x=0,"",x))
如@GSerg 所述(抱歉看到您的评论时正在打字)