Excel IF()与AND()函数的效率

时间:2018-03-20 19:49:24

标签: excel excel-formula

我尝试搜索,如果我的搜索技能很弱,请原谅我。我正在尝试减少Excel模型的速度和文件大小,并使其更清晰,所以我想我会用一些AND()语句替换一堆嵌套的IF()语句。我确认逻辑是一样的,但我的文件大小爆炸,我很惊讶。 AND()非常低效,比嵌套的IF()更糟糕吗?我不能分享公式,但是有优化嵌套IF()公式的一般建议吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

文件大小不会增加,因为公式设计效率低,但效率低下可能是由不必要的冗长公式引起的。在这两种情况下,它都不是 number 的数字重要的公式(因为它们以纯文本格式存储),与依赖于其他单元格的数量一样多,因为Excel存储了关于每个依赖项的单独的计算链信息。

你可以通过将Excel文件的扩展名更改为.ZIP,将其打开为压缩文件并检查其中的文件来查看(并查看文件为何如此之大) ,将您文件的先前(较小)版本与此版本进行比较。

.XLSX文件只是一组压缩的文本.XML文件。 .XLSM添加的内容不会超过VBAProject.bin(二进制文件)。

如前所述,格式 的效率会对文件大小产生巨大影响。这可以通过以下方式改进:

更多相关信息:

答案 1 :(得分:0)

嵌套IF的效率高于AND,因为IF 通常不会费心计算其余的公式不适用,例如

= IF(TRUE,<this>,<that>)

通常,上面等式中的<that>将被完全忽略。

AND 始终检查所有条件,即使没有必要。例如,考虑一下:

= AND(FALSE,<whatever>,<whatever>,...)

上述等式的结果将始终为FALSE,因为第一个参数为FALSE。 (如果第一个参数是FALSE,则其余参数无关紧要。)尽管如此,AND仍会检查所有参数。 OR在这种情况下的行为方式相同:

= OR(TRUE,<whatever>,<whatever>,...)

通过这种方式,IF更好,因为它们在满足条件后“停止”。

根据电子表格的详细信息(我不知道),这可能会极大地影响计算时间,尤其是在使用易失性公式的情况下,如果您不是,则会将瘟疫传播到电子表格中的其他单元格小心。

但是,我也不喜欢。嵌套的IF是草率的,难以阅读,难以维护。我几乎总是喜欢查找表。请参阅this question(和接受的答案),了解我正在谈论的内容。