送人玫瑰,手有余香,请将文章分享给更多朋友
动手操作是熟练掌握EXCEL的最快捷途径!
【置顶公众号】或者【设为星标】及时接收更新不迷路
小伙伴们啊,去重排序问题始终是EXCEL文本处理问题中的一个大类。这类问题在工作中的各个方面都会遇到。今天我就会和大家分享一则去重排序的问题。
题目如下:将单元格内的数字去重后按照从小到大的顺序重新排列。
题目描述很简单,但这个题目本身却有一定的难度,非常考验答题者的函数综合应用能力。
首先我们来看看常规的函数方法。
在单元格B2中输入公式“=MID(SUM(IFERROR(SMALL(IF(1-ISERR(FIND(ROW($1:$10)-1,A2)),ROW($1:$10)-1),ROW($1:$10))/10^ROW($1:$10),0)),3,100)”,三键回车并向下拖曳即可。
思路:
FIND(ROW($1:$10)-1,A2))部分,在单元格A2中查找0-9这几个数字。查找不到的返回错误值
ISERR(FIND(ROW($1:$10)-1,A2))部分,将错误值转换为TRUE,数值部分转换为FALSE
1-ISERR(FIND(ROW($1:$10)-1,A2))部分,将错误值转换为FALSE,数值部分转换为TRUE
IF(1-ISERR(FIND(ROW($1:$10)-1,A2)),ROW($1:$10)-1)部分,将数值部分转化为对应的0-9中的数字
SMALL函数排序后,对应每个位置上的数字除以10的ROW($1:$10)幂次方
IFERROR函数将错误值转换为0
SUM函数求和
MID函数提取正确值
这个公式的核心思路就是将不重复的数字提取出来,从小到大排序后再依次加权。但看起来稍显有些长,能否有更简洁一些的公式呢?
财务专业的小伙伴们都会计算在将来发生的一笔收益或投资的净现值。这个在EXCEL中有一个专门的函数--NPV函数。巧妙利用这个函数,我们会有意想不到的发现!
在单元格B2中输入公式“=MID(NPV(9,IF(ISERR(FIND(ROW($1:$10)-1,A2)),"",ROW($1:$10)-1)),3,66)”,三键回车并向下拖曳即可。
思路:
ISERR(FIND(ROW($1:$10)-1,A2))部分,在单元格A2中查找数字0-9,找不到的返回错误值。在利用ISERR函数将错误值转换为TRUE,数值部分转换为FALSE
利用IF函数做一个判断,将未找到的部分(上面的结果是TRUE的那部分)转换为空值,其余部分转换为对应的数字
上面第二部的结果是{"";1;2;3;4;5;6;7;8;9}
NPV函数的特性是,在本题中将第二个参数(我们内存数组中的第一个数字)除以10,将第三个参数(我们内存数组中的第二个数字)除以100,以此类推,最后求和。他的结果是0.123456789
最后利用MID函数提取正确答案即可
所以你看,看上去专业性很强的函数却能够解决我们日常工作中遇到的问题。还是那句话,学习函数,要活学活用!
-END-
长按下方二维码关注EXCEL应用之家
面对EXCEL操作问题时不再迷茫无助
我就知道你“在看”
联系客服