这是屏幕截图,这只是一个例子,因为我无法发布原始截图:
我制作了这张工作表来与另一张包含该员工是否计划在该日期工作的信息的工作表进行交叉检查。
我在 D1、D2、D3 列中使用的函数如下,以 D1 为例:
=IF([@Date]=DATE(2016,7,1),VLOOKUP([@ID],(*array on another sheet*),3,false),"")
它检查日期是否为 7/1/16,然后返回结果,如果不是,则返回空白,并且此函数被复制到表格底部(大约第 250000 行)的 30 列(从 D1 到 D30/D31)。如果逻辑值返回 false,有没有办法跳过该函数,这样它将消耗更少的内存并且速度更快,因为它将有如此多的字段,这些字段的函数返回空白值?
答案1
不,Excel 中没有办法控制公式的评估方式,但是您可以通过一些方法进行改进:
DATE (...)
你真的需要为每一天单独列一列吗?你可以参考第一列([@date]
) ,而不是在公式()中硬编码日期- 您可以关闭自动计算并仅在需要时手动计算
- 将文件保存为二进制工作簿(.xlsb),它需要更少的空间并且具有更好的性能(缺点是兼容性)。