咔片PPT · AI自动生成演示文稿,模板丰富、排版精美 讯飞智文 · 一键生成PPT和Word,高效应对学习与办公

周末继续解决粉丝发过来的问题,本次问题的就是“录入收样日期,就可以引用表格1中相同收样日期的指定数据”,根据这个问题描述,他是想建立一个表1和表2的串联动态报表,这样只需要更新表1的事务数据,表2作为查询数据就可以了。

分析结构

看了一下他提供过来的源数据结构,需要在表2中的B2录入收样日期,返回表1指定的数据,而这些数据分别分布不在同的列。需要注意的有以下几点:

收样日期是变量,可能一天收一行数据,也可能是多行数据,这里是一对多。

返回的列不连续,有的在第一列A列,有的在M列。

数据也没有唯一值,所以没有办法用VLOOKUP来引用。

以上这几个点对于低版本的Excel来确实有点难,需要用到函数特别多,而且也不方便理解,但是也为了照顾低版本Excel,分别写两个函数供大家参考。

低版本公式

低版本公式相当复杂,也不好解释,是一个数组公式,需要按Ctrl+Shift+回定才能运算的公式。录入公式:

=IFERROR(INDEX(OFFSET(表格1!$A$2:$A$10,,MATCH(低版本!A$2,表格1!$A$1:$P$1,)-1),SMALL(IF(表格1!$H$2:$H$10=低版本!$B$1,ROW(表格1!$H$2:$H$10)-ROW(表格1!$A$1)),ROW($A1))),"")

可以发现这个公式对于没有函数基础的人来说,就是个“天书”,里面光公式就有:IFERROR、INDEX、OFFSET、MATCH、SMALL、IF、ROW等6个公式。运算层级达到6层。

所以,还是高版本好解决。

高版本公式:

如果你的Excel公式没有以下函数,证明你的Excel还不是最新版本的,古老师版本为Office 365。在高版本中解决这类问题就相对简单了。直接上答案,录入公式;

=CHOOSECOLS(FILTER(表格1!A:P,表格1!H:H=B1),MATCH(A2:I2,表格1!A1:P1,0))

而且这个公式是动态数组公式,不需要填充公式,录入后,直接一个公式实现动态串联表1的数据,实现了更新表1的数据就动态串联到表2了。

录入1月3日的收样数据:

高版本公式思路

这个思路是经典的筛选函数加选列函数的应用,通过函数:

FILTER(表格1!A:P,表格1!H:H=B1),筛选出表1中符合条件,也就是收样日期的表1A到P列的数据。

上面的返回结果,有无效的列,也就是表2不想要的的列,需要用选列函数来选择指定的列号,而指定的列号是由MATCH函数来判断的。录入函数:=MATCH(A2:I2,表格1!A1:P1,0),就可以知道表2只要返回表1的列号分别为:第1、2、3、4、5、6、7、9、13列)

最后通过选择列号嵌套两个函数(第一参数FILTER,第二参数是MATCH),合并录入函数后就返回了正确的结果。=CHOOSECOLS(FILTER(表格1!A:P,表格1!H:H=B1),MATCH(A2:I2,表格1!A1:P1,0))

我是古哥:

从事制造行业18年,在企业运营、供应链管理、智能制造系统等方面具有丰富的实战经验。企业智能化,柔性化计划运营管理专家,擅长通过企业流程优化规范,企业管理、导入计划运营提升企业效率;对提高企业准时交货率,降低企业库存,输出智能制造人才有丰富的经验。学习PMC生产计划,关注古哥计划!