我一直在重新设计一些旧的电子表格工具,以便使用 Excel 的较新工具来过滤和格式化动态数据输出动态数组公式 https://support.microsoft.com/en-us/office/dynamic-array-formulas-and-spilled-array-behavior-205c6b06-03ba-4151-89a1-87a7eb36e531功能。这有助于消除对预分配单元和较少数量的辅助列的一些需求(这可以减少文件大小并提高性能)。
我正在努力替换的一种功能类型是提取动态的、运行重复的计数。
例如,假设 B 列有 20 个名称,长度可以从少数到 200 个名称不等。 C 列、D 列等中也有相关数据,其大小也同样不同。为了过滤后面列中的数据,我们目前在 A 中使用辅助列,其中包含 A 中重复项的运行计数,并使用使用半锚定范围的公式(即,以锚定单元格开始范围,该单元格扩展为该公式被复制到辅助列中,类似于此处的解决方案CountIf()和半锚定范围 https://stackoverflow.com/questions/13698632/how-do-i-enumerate-duplicate-rows-in-excel)。与新的动态数组公式相比,这里的缺点是需要为数据预先分配辅助列。
尽管尝试与Index()
, Aggregate()
, Filter()
,以及更多涉及的符号,例如Sumproduct(--(...))
,我能找到的创建辅助列 A 的最直接方法似乎是通过半锚定范围创建运行计数,不幸的是,这似乎不能很好地转换为新的动态数组公式。
有没有人有幸在动态数组公式中使用半锚定范围和公式?
要使用动态数组公式,我们需要使用易失性的 OFFSET。
=COUNTIFS(OFFSET(A1,0,0,SEQUENCE(COUNTA(A1#))),A1#)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)