我对优化 Google 表格中使用的公式有疑问:
=ARRAYFORMULA(
IF(
IFERROR(
MATCH($B2 & A2, ($B$1:B1) & ($A$1:A2), 0),
0
) = 0,
1,
0))
该公式的工作原理是对 A 列 (ID) 中出现在 B 列(日期)的日期范围内的所有唯一值进行计数,以在 C 列(计数)中给出输出。
请注意计数值只有 0 和 1,并且仅当 ID 在日期范围内首次出现时才会显示 1。
下面的示例数据。
ID Date Count
138 Oct-13 1
138 Oct-13 0
29 Oct-13 1
29 Nov-13 1
138 Nov-13 1
138 Nov-13 0
问题是,一旦我要解析的行数超过 10000 行,公式就会变得很慢,并且需要一个多小时才能完成计算。我想知道是否有人对如何优化这个公式有建议,这样我就不需要让它运行这么长时间了。
谢谢
最佳答案
我一直在尝试一些公式,我认为这个公式效果更好,但在 10000 行之后仍然变得相当慢。
=IF(COUNTIF((FILTER($A$1:$A2, $B$1:$B2 = $B2)),$A2) = 1, 1, 0)
编辑
这是 Google 产品论坛上发布的附加公式,只需将其放入一个单元格中,然后自动填充即可。这是迄今为止我找到的最好答案。
=ArrayFormula(IF(LEN(A2:A),--(MATCH(A2:A&B2:B,A2:A&B2:B,0)=ROW(A2:A)-1),))
关于optimization - 降低这个公式的复杂性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48410026/