【问题标题】:Whole Column Formula Efficiency for MS Excel Built in FunctionsMS Excel 内置函数的全列公式效率
【发布时间】:2015-08-12 20:50:25
【问题描述】:

我一直在尝试查找内置 MS Excel 函数的列表,这些函数可以有效地计算“整列”公式,但没有成功,有什么想法可以获取这些信息吗?我的意思如下:

本文档建议 SUM 和 SUMIF 公式自动提取最后一行数据,因此意味着没有效率理由为什么使用更受限制或动态范围更可取。

https://msdn.microsoft.com/en-us/library/office/ff726673(v=office.14).aspx#xlAllowExtraData

欢迎所有 Excel 2003/7/10 的答案。

【问题讨论】:

  • 我不明白你的意思。这篇文章的意思等于 VBA 中的Set rng = Intersect(rng, rng.Worksheet.UsedRange)。也没有必要高效,如果你删除了很多行/列,那是相当低效的。关于如何使用Range.Find 函数更有效地在 Excel 中查找最后一行和/或最后一列,有很多 discussions
  • 我相信只有数组公式(用 CTRL + SHIFT + ENTER 而不是 ENTER 确认)没有“整列公式效率”,尽管我从未听说过这个术语,这纯粹是轶事。也就是说,数组公式计算一列的整个长度,而不管数据在哪里停止;我不知道其他公式是否有类似的作用。
  • @user3819867 我知道使用 Range.Find 可以更有效地找到 End Row,但这不是我要问的。您是否有文档确认 Excel 在这些情况下使用 intersect 方法?
  • 我没有相关文档,只有个人经验。如果您想创建与内置函数一样高效的函数,这在大多数情况下都会对您有所帮助。

标签: excel excel-formula


【解决方案1】:

我认为假设所有 excel 函数的行为都如文章所述(即与 SUM 和 SUMIF 相同)是公平的。 (我不知道这篇文章,但是当你考虑它时它是有道理的......)

在幕后,单元格中的数据存储在 OO 数据结构中,因此只会创建具有非默认值和格式的单元格。

值数据和格式数据很可能在不同的容器中提供帮助。

因此,当 Excel 在某个范围内使用公式时,它正在处理数据结构,因此仅适用于具有值的单元格。

我希望具有不同格式(但非常值)的单元格的整列不会导致 SUM 和 SUMIF 公式扫描每个单元格。

如果有疑问,您可以使用要使用的公式进行实验。

您提供的链接谈到了行为不同的公式,并明确命名了 VBA 用户创建的函数和数组公式 - 这是有道理的。

另外,请注意文章说使用“结构化表引用”是最好的方法。 (即不仅将数据存储在范围内,而且将数据存储在 Excel 表中。使用 Ribbon:INSERT>Table 从范围创建)。

这些表将允许更有效地使用任何函数,因为使用的范围仅限于表的行数。

我希望这会有所帮助。

哈维

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多