送人玫瑰,手有余香,请将文章分享给更多朋友
动手操作是熟练掌握EXCEL的最快捷途径!
【置顶公众号】或者【设为星标】及时接收更新不迷路
小伙伴们好,今天要和大家分享一则关于数字处理的技巧。
题目时这样的。
根据A列中数字的多少进行重复,同时对数字进行编号,以“-”连接。
题目要求就是这些,但是这道题目解答起来可不像题目要求这样简单。
我们先看看怎样解决数字的重复问题。
FREQUENCY函数
运用FREQUENCY函数可以解决这个问题。
在单元格D2中输入公式“=LOOKUP(,0/FREQUENCY(ROW(A1),SUMIF(OFFSET(A$2,,,ROW($1:$4)),">0")),$A$2:$A$5)”,向下拖曳即可。
思路:
OFFSET(A$2,,,ROW($1:$4))部分,以单元格A2为基点,依次向下扩大1、2、3、4行,形成一个三维数组
利用SUMIF函数对其进行求和,结果为{3;5;10;11}。其中">0"这个条件其实就是对所有数值求和
接下来用FREQUENCY函数计频。凡是小于等于3的都计频在“3”,后面的以此类推
最后用LOOKUP函数返回正确结果
这个公式的难点是利用SUMIF函数对三维数组进行求和。
利用INDEX+SMALL函数也可以达到重复数字的目的。
利用SMALL函数提取第一小的那个数值,返回结果是1
INDEX函数返回正确结果
当随着单元格向下拖曳到第二个单元格时,SMALL函数返回第2、3小的数值,返回结果仍然是1;当返回第4小的数值时,返回结果2,INDEX则返回A列A3中的数值
通过以上的操作实现了对数据的重复显示。
接下来我们看看如何得到序列。其实关于如何得到序列,思路和上面第二种方法的思路是大同小异的。
例如对于单元格A2,经过IF函数判断后返回的结果是“201,202,203”;对于单元格A3来说则是“301,302”
利用SMALL函数求最小值。上面提到的“201”是这个内存数组中的最小值;而“302”则是第5小的值
通过上面的方法,我们巧妙地提取到了对应不同单元格的数量不同的序列
MOD函数求余后得到正确答案
将上述两部分的公式用“-”连接起来后最终的答案就揭晓了。
最后还有一个小彩蛋。利用TIME函数也会得到正确的结果。
朋友们,这个公式你们能理解吗?
-END-
长按下方二维码关注EXCEL应用之家
面对EXCEL操作问题时不再迷茫无助
我就知道你“在看”
联系客服