frequency法实现按指定次数重复内容

先看下源数据和要实现的效果。下图左表是源数据,包含要重复的内容和次数,如①所示。右边两列是重复后的效果,如②所示。也就是A重复2次,B重复3次,以此类推。
首先,我们用辅助列的方法来完成。在C列添加辅助列,C3单元格输入公式=SUM(B$3:B3),向下填充。得到上图C列的效果,实际就是对次数的累加。
辅助列构建好,在E2单元格输入公式=LOOKUP(1,0/FREQUENCY(ROW(A1),C$3:C$6),A$3:A$6)&"",向下填充,完成。这里主要用到frequency和lookup。
lookup的经典查询套路,lookup(1,0/(条件区域=条件),返回的区域),我相信很多同学都会了。主要的是frequency的用法,它是一个频率分步函数,统计一组数据在区间间隔中出现的次数。函数语法结构如下,FREQUENCY(data_array, bins_array) ,有2个参数。第1参数是要计算频率分布的数组,第2参数是区间间隔。frequency会返回一个垂直数组。
下面举一个简单的例子说明一下frequency的基础用法,如下图所示。左表是一个成绩表,现在要统计各区间分数的个数有多少个?各区间如绿色部门所示。简单来说,就是在B列的成绩中,统计小于等于60分的有几个,大于60且小于等于70分的有几个,以此类推。那么就可以用frequency来计算,选中E2:E6单元格,输入公式=FREQUENCY(B2:B9,{60,70,80,90}),按ctrl+shift+enter三键结束。
要注意的地方是frequecny返回的结果是一个垂直数组{0;2;1;5;0},也就是元素之间用分号分隔,同时它的元素个数比第2参数{60,70,80,90}多一个。它的统计规则其实就是我上面写的区间规则,60对应的是小于等于60的个数,70对应的是大于60小于等于70的个数,80对应的是大于70小于等于80的个数,90对应的是大于80小于等于90的个数,最后多出来的一个是大于90的个数。
现在{60,70,80,90}是按升序排列的,假如它不是按升序排序的,函数统计的时候自己会先排序,但返回的结果还是要对应的。(这句话可能不好理解,但很重要)。
frequency基础用法和原理说明后,就可以看我们最开始的公式了。如下图所示,我们先看frequency的这部分,也就是标①的那部分。第1参数row(a1)就是{1},第2参数C3:C6就是{2;5;6;10}。frequency返回的结果是{1;0;0;0;0},也就是②那部分,我用红色写出来的。那这个结果是怎么产生的?其实就是在第1参数{1}中小于等于2的有1个,大于2小于等于5的有0个,大于5小于等于6的有0个,大于6小于等于10的有0个,大于10的有0个。
如果上面我说的frequency你明白了,剩下的就是lookup的用法。其他单元格是同样的计算规律,你可以自己查看,就知道为什么可以按指定次数重复内容了。
不用辅助列的方法和用辅助列是一样的,只不过用offset的多维引用代替辅助列,直接给出公式,不再详细说明。在G2单元格输入公式=LOOKUP(1,0/FREQUENCY(ROW(A1),SUMIF(OFFSET(B$3,,,ROW($1:$4)),"<>")),A$3:A$6)&"",向下填充,完成。
frequency的进阶用法,我还在学习研究中,希望能有所进步。感兴趣的同学,可以下载文件练习起来。
链接:
https://pan.baidu.com/s/1_5RgUd9T3REYMbX3VkM4eg
提取码:39eg
(0)

相关推荐

  • 一大波常用函数与公式

    一.常用汇总公式 A列求和:=sum(A:A) A列最小值:=min(A:A) A列最大值:=max(A:A) A列平均值:=average(A:A) A列数值个数:=count(A:A) A列非空单 ...

  • 精通Excel数组公式021:提取唯一值列表并排序

    excelperfect 本文将综合使用前面系列中学习到的技术,包括布尔逻辑.动态单元格区域.提取满足条件的数据.统计唯一值等,创建出一个解决问题的大型公式.当然,如果你不需要自动动态更新数据,完全可 ...

  • lookup真强大!按指定次数重复内容并添加序号

    你好,我是刘卓.欢迎来到我的公号,excel函数解析.今天要分享的内容是按指定次数重复内容并添加序号.主要用到lookup函数,这个问题还是挺有实际意义的,学会可以用来多表合并. 下面来看下具体的效果 ...

  • 按指定次数重复内容的套路合集

    -套路合集- 按指定次数重复内容 1.vlookup精确查找(4参为0) 如下图所示,B列的是要重复的内容,C列是要重复的次数,最后想要的效果是E列那样.A重复2次,B重复3次...... 首先在A列 ...

  • 如何按指定次数重复内容?

    直接看案例: 我们需要根据组员人数自动重复对应的组长行数,方便我们后续填写组员信息 解决方法1: 我们使用2016版本自带的Power Query处理,只要简单几步即可完成,非常方便(其他版本2010 ...

  • 实战|模板 - 按指定次数重复内容

    今天,我们来说点,关于重复内容的事情 内容少的情况下,重复内容,并不是什么难事,拖动一下即可 但是如果内容较多,我们还是得学点技巧,批量来处理 为了演示方便,我们就来1-6月这个举例下面,小编就总结一 ...

  • 用最简单的方式实现-按指定次数重复内容

    废话不讲,直奔主题,那就是根据指定的次数重复内容 先简单说一下传统的方式 技巧法 步骤1: 输入公式=SUM($B$2:B2)-ROW(A1) 下拉到结果为0停止,多出部分删除 按照辅助列(C列),降 ...

  • 按指定次数重复内容

    前言 有时候我们需要对一列单元格按照指定的次数进行重复,如下图所示,D列为结果. 解决方法 今天我们试图用VBA来实现,方法如下: ALT+F11 打开VBA,插入任意模块,在模块中输入如下代码: S ...

  • VLOOKUP按指定次数重复数据

    -01- 下限分段点 如下图所示,要根据C列的次数重复B列的部门,结果如F列所示.比如"销售部"的次数为3,那么"销售部"就要重复出现3个. 1)在A列添加辅助 ...

  • 按指定次数重复显示,两种方法随意选

    先来看数据源和要实现的效果: 咱们的最终目的,是希望按照B列指定的次数,来重复显示A列的标签内容. 函数控们的方法是这样的: 在D2单元格中输入一大串公式,按住Ctrl+Shift不放,按回车,然后下 ...

  • 答读者问:如何按指定的次数重复行?

    今天读者群有群友问到如何按指定的次数重复行,就按二种方法录了个操作演示,详见GIF动画 一.辅助列法 要点: 1.下拉填充时要填充到0为止, 2.排序时先选定D1,然后往左下角选定到B13,这样活动单 ...