首页
连续排序的自定义函数
完美Excel
·
Excel
· 1 周前
正文
学习Excel技术,关注微信公众号:
excelperfect
标签:
Excel
技巧
,
LAMBDA
函数
在
Excel
中,对于重复的数值,没有函数能够返回连续的数字序号,而只是返回重复的排序数字号。
可以使用函数组合让排序的数字序号连续,如下图
1
所示。
图
1
在单元格
B1
中输入公式:
=RANK.EQ(A1,$A$1:$A$17)+COUNTIF($A$1:A1,A1)-1
下拉拖动复制至单元格
B17
。
然而,这里有两个问题:因被排序的值是文本而导致错误值;
0
与空单元格排序序号相同。
可以对公式加以改进,如下图
2
所示,在单元格
C1
中输入公式:
=IF(ISNUMBER(A1),RANK.EQ(A1,$A$1:$A$17)+COUNTIF($A$1:A1,A1)-1,"")
下拉拖动复制至单元格
C17
。
图
2
这样,上面的两个问题就解决了。
接下来,我们来自定义一个函数。
我们先将上述公式进一步改进,如下图
3
所示,在单元格
D1
中的公式:
=IF(ISNUMBER(A1),RANK.EQ(A1,$A$1:$A$17)+COUNTIF(INDEX($A$1:$A$17,1):A1,A1)-1,"")
图
3
然后,提取公式中可以共同设置的变量,使用
LAMBDA
来自定义函数。先测试
LAMBDA
定义的函数,在单元格
E1
中输入:
=LAMBDA(rng,amt,IF(ISNUMBER(amt),RANK.EQ(amt,rng)+COUNTIF(INDEX(rng,1):amt,amt)-1,""))($A$1:$A$17,A1)
结果如下图
4
所示。
图
4
测试通过后,就可以来自定义函数了。
先定义名称,如下图
5
所示。
图
5
然后,使用这个自定义函数看看结果是否正确。在单元格
F1
中输入:
=fnRANK($A$1:$A$17,A1)
结果如下图
6
所示。
图
6
欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。
欢迎到知识星球:
完美
Excel
社群
,进行技术交流和提问,获取更
多电子资料,并通过社群加入专门的微信讨论群,更方便交流。
推荐文章
阻止用户单击工作表中的控件
·
完美Excel
·
10 小时前
2
完美Excel的2024
·
完美Excel
·
4 天前
1
LOOKUP函数,这些用法会不会?
·
Excel之家ExcelHome
·
3 天前
2
COUNTIF函数的几个典型用法
·
Excel之家ExcelHome
·
3 天前
2
Excel求和用得好,年薪三万还嫌少
·
Excel之家ExcelHome
·
5 天前
1
我妈问我:“什么是S属性大爆发?”
·
莓辣MAYLOVE
·
1 周前
0
2021“钟表与奇迹”日内瓦展大盘点,有这些重点表款你...
·
理想生活实验室
·
3 年前
1
哪些银行跻身本周微博影响力榜单?三家银行排名上升,交通...
·
新浪金融研究院
·
4 年前
1
张杰被开除党籍!
·
新华网
·
5 年前
1
© 2024 精读
删除内容请联系邮箱 2879853325@qq.com