• 我的订阅
  • 科技

excel公式中的“流氓”,可以解决很多场景问题

类别:科技 发布时间:2023-02-23 11:40:00 来源:卓越科技

excel公式中的“流氓”,可以解决很多场景问题

今天继续学习一下关于公式一对多引用和延伸应用的讲解。

首先回顾一下一对多引用公式,是关于index+n+if函数的特性组合,那么在这个基础上,我们将进一步深化该知识点,并来解答一个相关实际案例!

也就是上期结尾作者预告的问题。

在下面数据表中,是某企业物料采购的记录,通过不同日期来记录该物料采购的要货数量采购回复数量

我们需要通过公式将物料不同日期的要货和采购数据全部合并到一个单元格中显示!

1、有多个空格的列不在公式的结果中显示,即没有任何采购数据的列将跳过不显示;

2、公式结果最终在合并单元格中显示;

3、每组数据换行显示;

4、公式结果保持原日期格式。

具体问题介绍和解题要求如图中文本所示:

excel公式中的“流氓”,可以解决很多场景问题

我们通过动图来看看公式运行的效果,当在后续日期输入任意采购数据时,单元格都会实时显示新录入的数据信息。

excel公式中的“流氓”,可以解决很多场景问题

如何达到这样一个效果,作者先来介绍一下自己的思路:

首先它最终要合并所有多组数据到一个单元格中,因此必须使用文本合并函数,这是外层的一个大框架;而根据显示情况可见,它使用了分隔符进行分隔不同采购要货数量和回复数量,因此可以利用基础合并方式将同一日期下的采购数据合并到一起;

现在重点就是要得到一个多组日期的合并数据,并将这些数据组成一个数组,且能够通过函数来提取其中符合条件要求的数据组。所以这一点既是重点也是难点!

下面作者还是一步步来完成公式的创建!

第一步:small+if+row函数固定搭配

small+if+row函数是什么固定搭配?有什么用?

这个搭配对于很多新手都比较陌生,但它其实属于excel公式中的“流氓”,可以解决很多场景问题。至于为什么“流氓”能解决很多问题,实则是脸皮厚能耍赖……

从下图中可见,作者输入了一个较长的组合公式:

{=SMALL(IF(TRANSPOSE(LEN(TEXT($H$3:$AI$3,"m/d")&":"&H4:AI4&";"&H5:AI5)>7),ROW($1:$28),""),ROW($1:$28))}}

excel公式中的“流氓”,可以解决很多场景问题

我们先简单认识一下其中的“TEXT($H$3:$AI$3,"m/d")&":"&H4:AI4&";"&H5:AI5)”部分。

其中使用了“&”连接符,所以这个表达式就是文本的基础合并,是将日期行和下方的采购要货数量和回复数量行的数据进行连接。

由于是单元格区域与其他单元格区域的连接,因此会得到一个数组结果。

然后在公式中首个单元格区域套上了text函数,是为了给这组数据套上固定的日期格式,因此在4个条件中有一条为“公式结果保持原日期格式”。如果不使用text函数,那么公式运行时会将日期转换为一串数值。

我们来看下这个公式运行得到的结果,如下图所示,虽然在单元格显示为1,实际是一个包含数字排序和错误值的数组结果。

excel公式中的“流氓”,可以解决很多场景问题

第二步:index+n+if函数的固定搭配

这个搭配童鞋们可能有点印象,是作者上个内容讲到的一对多公式套路。

那么它的作用是什么呢?

是利用index函数的引用功能,来引用合并文本的数组中指定位置的数据组合,也就是指定行序号来引用区域中的数据,这是index函数的基本作用。

但高级的是,index函数在这个公式中起到了引用出一个数组结果的效果,这在常规的index公式中是无法实现的。

下面先上公式:

{=INDEX(TRANSPOSE(TEXT($H$3:$AI$3,"m/d")&":"&H4:AI4&";"&H5:AI5),N(IF(1,SMALL(IF(TRANSPOSE(LEN(TEXT($H$3:$AI$3,"m/d")&":"&H4:AI4&";"&H5:AI5)>7),RO($1:$28),""),ROW($1:$28)))))}

excel公式中的“流氓”,可以解决很多场景问题

初看这个公式感觉有点复杂,应用了很多函数,但不管添加多少函数进去,我们解析公式的步骤是一层一层剥开来,去解析每个函数在另一个函数中作为参数,起到了什么样的作用!

那这里,len函数是为了创建一个逻辑判断表达式;transpose是为了将行数据转为列数据;small函数是将数组结果进行排序;n+if函数是为了搭配index函数,而固定添加的一个组合,为了能够引用到一个数组的结果;

关于上面这段话的详细含义,大家可以去琢磨,也可以记住这个固定套路,因为到index函数这一步,基本可以应用到不同的一对多引用场景中。

下面我们还是来看一下这个公式运算的结果:

excel公式中的“流氓”,可以解决很多场景问题

第三步:textjoin+iferror函数跳过空值组合文本

这一步将输出最后的结果,其中iferror函数是为了将index函数得到的错误值转换为空值,使textjoin利用其特性跳过这些空值,来组合其他的数据组合,并在单元格中换行显示。

所以完整公式为:

{=TEXTJOIN(CHAR(10),TRUE,IFERROR(INDEX(TRANSPOSE(TEXT($H$3:$AI$3,"m/d")&":"&H4:AI4&";"&H5:AI5),N(IF(1,SMALL(IF(TRANSPOSE(LEN(TEXT($H$3:$AI$3,"m/d")&":"&H4:AI4&";"&H5:AI5)>7),ROW($1:$28),""),ROW($1:$28))))),""))}

excel公式中的“流氓”,可以解决很多场景问题

通过公式得到了正确的结果后,其实已经完成了最主要的工作,但我们还需要填充公式,还要将同一组单元格合并到一起,使公式结果在合并单元格中显示。

那其实操作也不复杂,作者做一遍,其中应用了多行填充和格式刷功能,大家可以收藏练习。

excel公式中的“流氓”,可以解决很多场景问题

以上就是今天的全部内容,欢迎继续关注作者,持续更文中!

举报/反馈

以上内容为资讯信息快照,由td.fyun.cc爬虫进行采集并收录,本站未对信息做任何修改,信息内容不代表本站立场。

快照生成时间:2023-02-23 12:45:16

本站信息快照查询为非营利公共服务,如有侵权请联系我们进行删除。

信息原文地址:

=countifs函数公式写法
...中的常规应用,主要是讲解一下它们在不同条件要求下的公式写法。如下图所示,工作表包含了两个表格,左侧是数据表,右侧为统计表,现在需要在统计表中来计算各推荐人推荐的人员,其入职人
2023-02-23 11:44:00
vlookup函数反向查找
...字或多条件查找。下面我们就根据两个不同的场景来进行公式的使用和介绍。首先,作者先写下vlookup函数公式的常规表达:=vlookup(查找值,查找区域,返回列,查找类型)总
2023-02-23 11:39:00
excel函数公式提取指定字符right函数公式
...Excel100个常见函数快速入门》专栏中介绍过使用不同函数公式来提取指定字符串,而且单元格的内容不仅仅是带有固定规律的前缀或者后缀,也包含文本中间,或者并没有任何规律可循。
2023-02-23 11:46:00
车船号作等号多条件计数的复杂实例
...个工作表的组合图,上面是总数据表表1,下面是要填充公式结果的表2,题干是这样的:计算每个车船号在当天指定时间内不重复的出车次数,并将结果填充到另一工作表的指定区域。再来看看两
2023-02-23 11:50:00
excel单元格分割填充方法
...新版office365是要搓五指的,因此作者在这里介绍一个组合公式,来引用单元格指定符号前后的文本内容。而且在这个公式中,应用了一些常见场景中可以直接套用的函数表达,其解题的
2023-02-23 11:43:00
large函数表达式排序公式写法和含义
...功能来操作的。本文也会在最后通过排序操作动图来对比公式排序的结果。但如果在一些特定情境下,需要使用公式来进行数据排序,并设置了指定的排序条件,那么这样的情况下,该使用什么函数
2023-02-23 11:40:00
vlookup函数在一对多场景中的使用
...方数据表中,已知客户组和各组人员,现在需要使用函数公式来提取客户组A210的所有人员。一对多查找引用,一直以来都是excel中较为复杂的一类知识,但其实它的解法并不复杂,尤其
2023-02-23 11:46:00
vlookup函数公式配合辅助列
...为优秀业绩水平。根据条件要求,我们可以输入一个函数公式: =VLOOKUP(E2,$G$5:$H$7,2,1)从公式来看
2023-02-23 11:38:00
excel中如何提取字符的前中后位置
...据按照符号分成需要的列。但有时我们的需求就是要通过公式来提取字符,那么今天,作者还是介绍以下几个公式,分别来提取文本中字符的前中后位置的内容。首先是在第1列提取第一个材料的信
2023-02-23 11:44:00
更多关于科技的资讯: