飞一样的谜 发表于 2022-1-17 19:47:46

逐行扫描规则:
自上而下,从左至右 。
(微软就是这样规定的)
COUNTIF的数据区,也不要全列引用(这样就快多)

乐无极 发表于 2022-1-20 22:06:28

从上到下,从左到右,只要活动了一次,就要从头到尾算一遍。数组公式多了肯定是要卡的
而且我猜呀,这种用法有可能还会加大计算量

致一印务 发表于 2022-1-21 01:00:27

从上到下,从左到右,只要活动了一次,就要从头到尾算一遍。数组公式多了肯定是要卡的
而且我猜呀,这种用法有可能还会加大计算量

夏建光 发表于 2022-1-22 01:17:35

中式排名的套路是 :
=SUM((B$2:B$12>=B2)/COUNTIF(B:B,B$2:B$12))

记得学习 发表于 2022-1-22 12:57:23

中式排名的套路是 :
=SUM((B$2:B$12>=B2)/COUNTIF(B:B,B$2:B$12))

西虹四 发表于 2022-2-1 06:10:02

谢谢丢丢大哥,整列引用我知道,改了也差不多卡的。
从上到下?如果是这样更新公式单元格的话,那算法的耗时会大大增加。
比如这个例子:到95了,那么95肯定是1的,那么b2单元格呢?他还是2啊,因为81还是1啊,95又1,那么80还是2,79原来是3,这个时候还是3呀,更新 一轮,第二轮80才会变到3.。。。具体更新几轮才能让所有数值最终稳定下来就不知道咯。看样子也确实是这样更新的,因为这样的算法确实很卡。

元大宝 发表于 2022-2-4 03:57:44

谢谢丢丢大哥,整列引用我知道,改了也差不多卡的。
从上到下?如果是这样更新公式单元格的话,那算法的耗时会大大增加。
比如这个例子:到95了,那么95肯定是1的,那么b2单元格呢?他还是2啊,因为81还是1啊,95又1,那么80还是2,79原来是3,这个时候还是3呀,更新 一轮,第二轮80才会变到3.。。。具体更新几轮才能让所有数值最终稳定下来就不知道咯。看样子也确实是这样更新的,因为这样的算法确实很卡。

紧握拳头 发表于 2022-2-4 17:05:36

计算排名数据大时,用排序 .(飞快)

小龟鱼儿 发表于 2022-2-8 08:09:44

去重的问题,新函数应该快很多
=count(unique(filter(b$2:b$10000,b$2:b$10000>b2)))+1
重复数量越多的话,去重再排序的方法应该更好点
=match(b2,sort(unique(b$2:b$10000),1,-1),)

娓声诗语 发表于 2022-2-8 16:35:44

我只是按你的递归的思路写的公式
也比countif函数快多了
另用
=COUNT(0/FREQUENCY(IF(B$2:B$999>B2,B$2:B$999),B:B),)

速度应该也不错
星光骚年的高版本的肯定是最快的,
其中 =match(b2,sort(unique(b$2:b$10000),1,-1),)
用区域数组会更快~!
**************--------**************
又看了下,原来是我没看岔了你的意思。
你说得对,就是丢丢大佬说的规律。
页: 1 2 [3] 4
查看完整版本: 不知道如何更新最快