飞一样的谜
发表于 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),)
用区域数组会更快~!
**************--------**************
又看了下,原来是我没看岔了你的意思。
你说得对,就是丢丢大佬说的规律。