掐头去尾:计算相同内容之间的最大间隔数

你好,我是刘卓。欢迎来到我的公号,excel函数解析。今天来分享frequency的一个案例,用来计算相同内容之间的最大间隔数。本案例出自海鲜老师之手,我这里算是传播一下吧。

1.计算张三之间的最大间隔数

下图A列是一些姓名,现在要计算张三之间的最大间隔数。我们可以看到张三之间的间隔数分别是1,2,4,所以最大间隔数是4。如果让你算,你会怎么算?可以自己先想一想。

在没有见过海鲜老师的思路前,我的思路是先判断这些姓名是否等于张三,如果等于张三,返回对应的行号,否则返回false。然后用下一个行号减去上一个行号,最后用max取最大值,再减去1,就得到了最大间隔数。公式如下,按ctrl+shift+enter三键。

=MAX(MMULT(IFERROR(SMALL(IF(A2:A15="张三",ROW(2:15)),ROW(1:15)+{0,1}),),{-1;1}))-1

下面来看看海鲜老师的公式,公式简短,而且不用按三键。

=LARGE(FREQUENCY(ROW(A:A),(A2:A15="张三")*ROW(20:33)),3)-1

下面我来给大家拆解下这个公式:

先看(A2:A15="张三")*ROW(20:33)这部分,判断A2:A15是否等于张三,如果相等返回true,再乘以row(20:33)返回对应的数字;如果不相等返回false,再乘以row(20:33)返回0,最后的结果为{0;21;0;23;0;0;26;0;0;0;0;31;0;0}。如下图D列所示:

这里有些小伙伴可能会有疑问,为什么要用row(20:33)呢?其实这是有道理的。第一,它和数据源的尺寸大小是一样的,都是14行。第二,row开头的数字20大于数据源的个数14。为什么要求第二点,后面再解释。

(A2:A15="张三")*ROW(20:33)这一步的结果作为frequency的第2参数,也就是区间分段数组。frequency的第1参数是row(a:a),是一个非常庞大的数组,也就是excel表格的所有行数组成的数组,从1,2,···一直到1048576。

这样的话只在frequency第2参数的非0位置上计数,所以,FREQUENCY(ROW(A:A),(A2:A15="张三")*ROW(20:33))返回的结果为{0;21;0;2;0;0;3;0;0;0;0;5;0;0;1048545},如下图E列所示:

从上图的对比中,我们可以看出5是我们所要的结果,只不过包含了张三本身,所以还要减去1。那怎么把5取出来呢?可以用large从上面的结果中取第3个最大值。

因为开头的21和结尾的1048545都比数据源的个数14大,所以要把它们两个排除出去,这就是“掐头去尾”。这也是为什么row的开始数字必须要大于数据源的个数,只有这样才能把头去掉。

总体思路是让头和尾的个数大于数据源的个数,这样它们就变成最大的2个数了,然后取第3个最大值,就把头尾两端的干扰项去掉了,从而得到了最大间隔数。大家可以参考下图来消化理解:

今天的分享就到这里,如果你还有其他的方法,欢迎留言分享讨论。

链接:

https://pan.baidu.com/s/1J-VCtOjlUAaTBPT9s037Yw

提取码:bb7k
(0)

相关推荐

  • Excel公式技巧88:使用FREQUENCY函数统计不同值、唯一值和连续值(上)

    excelperfect FREQUENCY函数是一个较难掌握的Excel工作表函数,这篇文章收集整理了一组运用FREQUENCY函数的公式,用来统计不同值.唯一值和连续值的数量,希望能够帮助有兴趣的 ...

  • Datedif函数,快速计算年、月、日间隔

    在工作中我们会经常遇到日期计算的问题,比如计算两个日期之间的天数.月数.年数.如果不知道Datedif函数,我们计算间隔天数是就用两个日期直接相减,计算月份就除以30天,这就可以粗略的计算间隔月份数据 ...

  • 初三物理电学基础计算的内容

    电学一向是初三物理的重难点,也是让很多同学头疼的一个版块~今天带大家梳理下"电学基础计算"的内容,赶快拿出笔记本来吧!  一.欧姆定律   二.电能   三.电功   四.电功率  ...

  • 如何用DATEIF函数求两个日期之间的间隔数?

    行云里讲堂(ID:xingyunli2022) 践行终身学习,专注个人提升. 整理编辑:枏北 DATEDIF函数用来计算起始日期的间隔数(几年.几月.几日).其语法为:DATEDIF(起始日期,终止日 ...

  • 恍惚之间,便是数年

    看着车窗外的年轻情侣扮演着甜蜜, 那女孩停留在车站不舍离去, 似乎不忍接受短暂的别离, 男孩的严重满是宠溺, 像极了曾经的我和你, 眼前不自觉有电影放起, 无声剪辑, 享受着回忆, 默默思念着悄无声息 ...

  • 怎样计算两个日期之间间隔的工作日天数

    要计算两个日期之间的工作日天数,剔除周末和法定节假日,可以用networkdays函数,函数语法结构如下:Networkdays(start_date,end_date,[holidays]) 图1 ...

  • 动态滤波器卷积新高度!DDF:同时解决内容不可知与计算量两大缺陷|CVPR2021

    作者丨happy 审稿丨邓富城 编辑丨极市平台 极市导读 本文针对标准卷积存在的两个问题:内容不可知与计算量大问题,提出了一种具有内容自适应且更轻量的解耦动态滤波器,它将常规动态滤波器拆分为空域动态滤 ...

  • 如何计算两个时间点之间间隔的时间(包含天、小时、分)

    如图1,要计算A列相邻行间隔的时间,单元格A2与A3间隔的时间见B2单元格,A3与A4间隔的时间见B3单元格,以此类推填充B列其他单元格. 图 1 解决思路和步骤如下: step1:A列两个单元格相减 ...

  • 暖通常用计算内容、计算方法、电算表汇总

    来源:网络整理,如有侵权请联系删除 本课件为某设计院内部培训课件,仅供参考. 采暖计算 1.冬季采暖房间耗热量计算 根据采暖房间性质(建筑高度.应采用的冷风渗透计算方法),采用计算共享库3.1中对应表 ...

  • 2021高考物理计算题命题核心内容及出现概率推测

    根据2020年山东省高考真题以及两套山东省模拟题预测一下2021年山东高考物理考题的命题趋势和命题概率,纯属个人多年经验判断,仅供参考,如果有些类似,纯属巧合. 高考物理呢,第15题和第16题是两个小 ...