学会了这些方法,重复显示再也不用CTRL+V/CTRL+V了,鼠标拖曳也要靠边站!
点击上方
蓝色
文字 关注我们吧!
送人玫瑰,手有余香,请将文章分享给更多朋友
动手操作是熟练掌握EXCEL的最快捷途径!
最近有小伙伴问我关于按照指定数量重复显示某字符串的问题。在我的帖子最全的OFFSET函数应用集合,收藏这一篇就够了中曾经介绍过,OFFSET函数配合INT函数可以解决这个问题。
可是,对于一个EXCEL发烧友来说,怎么能满足只用一种方法解决问题呢?在查阅了大量的相关资料后,我再向大家介绍两种重复显示字符串的方法。
像上图一样,左侧给出了字符以及字符的数量。我们要用公式做出右侧的效果来。
FREQUENCY函数法
利用FREQUENCY函数我们是可以达成目的的。
在单元格D1中输入公式“=LOOKUP(,0/FREQUENCY(ROW(A1),SUMIF(OFFSET(B$1,,,ROW($1:$9)),">0")),A:A)&""”,三键回车并线下拖曳即可。
思路:
SUMIF(OFFSET(B$1,,,ROW($1:$9)),">0")部分,是非常重要和常见的应用。由于OFFSET函数的第4个参数是ROW($1:$9),含义是以单元格B1为起点的单元格区域,范围依次为1行、2行、…、9行,最终OFFSET函数的结果是多维引用,因此需要配合SUMIF函数降维并求和。这部分最终的结果是{5;8;10;10;10;10;10;10;10}。这里ROW($1:$9)的范围只要大于源数据的行数即可
接下来,利用FREQUENCY函数对ROW(A1)在{5;8;10;10;10;10;10;10;10}计频。随着公式向下拖曳,ROW(A1)中的A1也会随着行数而变化。但只要ROW()的值小于等于5,那么FREQUENCY函数始终会在第一个位置上计频1,例如,{1;0;0;0;0;0;0;0;0;0}
下面问题就简单了。利用LOOKUP函数的特点,就可以按照我们希望的数量返回对应的字符了
这里SUMIF(OFFSET(B$1,,,ROW($1:$9)),">0")是本题的“睛”,请大家体会其作用并尝试应用。
INDEX函数+SMALL函数
我们利用INDEX函数配合SMALL函数也可以解决这个问题。
在单元格E1中输入公式“=INDEX(A:A,SMALL((B$1:B$3
思路:
(B$1:B$3
(B$1:B$31,1,1,1,1,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101;2,2,2,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102;3,3,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103}
利用SMALL函数依次提取最小的数。前5个最小的数都是“1”。
最后利用INDEX函数返回对应的字符。
完美解决问题!
小伙伴们在实际问题中可以根据实际情况来选择最合适的那个方法来解决问题。本例中向大家展示的解题思路说明了,遇到问题后,多试试不同的方法解决问题,有助于大家尽快提高自己的函数应用水平。
好了,今天和大家分享的内容就是这些了!
-END-
长按下方二维码关注EXCEL应用之家
面对EXCEL操作问题时不再迷茫无助
戳原文,更有料!免费模板文档!