[区间序号]填充很哇塞,小李看后把门踹 #excel

群友求助SOSExcel如何按条件,将序号以区间的形式进行快速填充



单凭这个简单的描述,我们想象不到具体的应用场景,下面我们用几组简单的数据模拟还原真实的办公情形。



如下图所示

A列为一列序号,B列为序号对应的名称。我们发现这样的一个规律:A列的序号并不一定是连续的,但是相同名称所对应的序号区间肯定是连续的


我们想要做的就是

将D列所有不同的名称,对应的A列的序号区间显示在E列。序号区间的格式为:“起始序号~结束序号”的模式。




着手解决这个问题之前呢,小编建议先对数据源做一个以“名称”为主要关键字,“序号”为次要关键字的全部“升序”排序。可以用常规排序法,也可以使用sortby排序函数。


因为本例中,这位朋友给出的数据源就是已经排序后的效果,所以可以忽略此步骤。直接进入常规解题流程了:



第一步:去重确定名称列


使用简单高效的UNIQUE去重函数:

=UNIQUE(B2:B9)


省略第2参数,表示去重后的数据按行显示,省略第3参数,表示返回去重后唯一值列表。




第二步:筛选


使用常见强大的FILTER筛选函数:

=FILTER(A$2:A$9,B$2:B$9=D2)


当固定区域B$2:B$9中的名称与D2单元格名称相同时,我们筛选并返回相同名称左侧区域A$2:A$9中对应的序号。




有一些函数基础比较薄弱的朋友总是会问

为啥此时我下拉填充公式会出现乱码


原因就是FILTER函数返回筛选结果本身默认是纵向分布的,如果此时强硬下拉填充公式,那么当前公式单元格的下一个单元格都会纵向输出新的数据,导致遮挡住当前单元格公式的返回结果,故产生乱码。




如果还不明白,你可以手动向E3单元格随意输入内容,那么这个内容会遮挡住E2单元格FILTER函数的返回结果,故 #SPILL产生了。




当然了,利用TOROW函数,将FILTER函数的返回结果转置为横向的:

=TOROW(FILTER(A$2:A$9,B$2:B$9=D2),3)


那么后续就可以随意的下拉填充公式了。无遮挡后顾之忧。




第三步:确定区间极值


利用常常被我们忽略但很实用的TAKE函数:

=TAKE(TOROW(FILTER(A$2:A$9,B$2:B$9=D2),3),,{1,-1})


TAKE函数属于数组函数。在Excel和WPS表格中,TAKE函数主要用于从数组或区域中提取指定数量的行或列。


其语法为:

=TAKE(array, rows, [columns])

其中,array是要从中获取行或列的数组;rows是要获取的行数,正数从开头取,负值从末尾取;columns是要获取的列数,正数从左边取,负值从右边取。


有意思的是

TAKE函数获取指定数量的行或列数据时,可以同时获取多行或多列,可以利用第3参数取列数据,用数组思维{1,-1},表示同时提取上一步返回结果中的第1列与倒数第1列。所以区间的最小值与最大值就这样确定了




第四步:单极值处理


我们不要忘了,名称对应的序号可能就只有1个,比如名称D,对应的序号只有12,那么通过上述公式得到的序号区间范围为:12,12。


我们要想只留下一个不重复的12,需要再次使用UNIQUE去重:

=UNIQUE(TAKE(TOROW(FILTER(A$2:A$9,B$2:B$9=D2),3),,{1,-1}),TRUE)


第2参数设置为TRUE表示输出的去重结果按列显示。




第五步:合并


使用职场高频函数TEXTJOIN:

=TEXTJOIN("~",,UNIQUE(TAKE(TOROW(FILTER(A$2:A$9,B$2:B$9=D2),3),,{1,-1}),TRUE))


用间隔符“~”将两个极值(区间最小值与区间最大值)合并到一个单元格中显示。


相关文章

WPS 隐藏神技!ROWS 函数这 5 种用法,让你数据处理快到飞起

一、ROWS 函数是什么?一文读懂基础语法ROWS 函数,从名字就能猜出个大概 —— 它专门用来计算某个区域或数组的行数。语法非常简单,就长这样:ROWS(array)。这里的array可以是单元格区...

excel函数技巧:NO24行列数计算函数rows、columns

我用这两个函数比较多还是因为把它们代替了count类函数,特别是counta函数,主要原因在于用conuta时会将空行统计成1,这与实现是1的时候会产生混淆。而rows函数会返回错误值,再用iferr...

Excel神操作:一键复制数据N次,自动垂直排列!职场效率翻倍秘籍

还在手动复制粘贴?这个公式让你的工作效率提升10倍!在日常工作中,我们经常遇到这样的场景:需要把某个数据重复生成多份,并且要整齐地垂直排列。比如制作员工工牌、生成测试数据或创建重复标签。今天教大家两种...

新函数TRIMRANGE来了!智能判断表格大小,让函数自动更新

今天跟大家分享一个我期盼了很久的一个Excel新函数——TRIMRANGE,Excel终于可以智能的判断数据区域的大小了,现在Excel函数已经迈进数组编程时代,有了它不但可以提高计算的速度,还能让函...

隔行隔列提取,这两个 Excel 函数啥都为你想到了

很多同学会觉得 Excel 单个案例讲解有些碎片化,初学者未必能完全理解和掌握。不少同学都希望有一套完整的图文教学,从最基础的概念开始,一步步由简入繁、从入门到精通,系统化地讲解 Excel 的各个知...

又来了2个新函数,提取任意行列数据,太好用了!

今天跟大家分享2个新的Excel函数,WPS用户也是可以使用的,它就是——CHOOSECOLS与CHOOSEROWS,废话不多说,让我们直接进入主题吧一、了解函数CHOOSECOLS:返回数组中的指定...