Excel 动态数组 运行 重复项计数

Excel Dynamic Array Running Count of Duplicates

我一直在重组一些旧的电子表格工具,使用 Excel 的更新的 Dynamic Array Formulas 功能来过滤和格式化动态数据输出。这有助于消除一些预分配单元格的需求和减少辅助列的数量(这允许减小文件大小和更快速的性能)。

我正在努力替换的一种函数类型是动态提取,运行 重复计数。

例如,假设我有一个包含 20 个名称的 B 列,这些名称的长度可以从少数到 200 个不等。 C、D 等列中也有相关数据,它们的大小也有类似的变化。为了在后面的列中过滤数据,我们目前在 A 中使用辅助列,其中包含 A 中重复项的 运行 计数以及使用半锚定范围的公式(即范围以锚定开始随着公式被复制到辅助列下而扩展的单元格类似于此处使用 CountIf() and a semi-anchored range 的解决方案)。与新的动态数组公式相比,这里的缺点是需要为数据预先分配辅助列。

尽管尝试使用 Index()Aggregate()Filter() 和一些更复杂的符号,如 Sumproduct(--(...)),但这是我能找到的最直接的制作辅助列的方法A 似乎是通过半锚定范围创建 运行 计数,不幸的是,这似乎不能很好地转换为新的动态数组公式。

有没有人幸运地将半锚定范围和公式用于动态数组公式?

要使用动态数组公式,我们需要使用易失性的 OFFSET。

=COUNTIFS(OFFSET(A1,0,0,SEQUENCE(COUNTA(A1#))),A1#)