【excel】隔行引用另一表中连续数据

更新:		
2019-02-16 第一次发布,使用INDEX函数
2019-02-21 更新引用公式
2019-02-23 使用OFFSET函数

背景:

想要做一张物料卡表头,内容如图一所示,现在要把数百个物料填入表头,手工录入即容易出错,工作强度又大,效率极低。
《【excel】隔行引用另一表中连续数据》
那么可以先将物料信息预先录入工作簿的另一张表中,如图二所示,让表头栏自动调用这张表中的数据:
《【excel】隔行引用另一表中连续数据》

分析

分别将2张表定义为A表和B表,A表的第一行对应B表的第一行,A表的第四行对应B表的第二行,以此类推,则对应关系如下表所示:

AB
11
42
73
104
135
166
197
228
259

从表中可知A列为差值3的等差数列,要将A列数值与B列数值一一进行对应,可使用下列表达式:1=1+0,4=1+3,7=1+6……
1=1+(1-1),4=1+(2-1)*3,7=1+(3-1)*3,……
得出公式A=1+(B-1)*3,翻转AB在等式两边的位置:B=(A+2)/3
现在我们可以用ROW函数得到A表的行数数值,将之代入到公式中,即可得到B表中相应数据所在的行数,例如在A表的第25行输入公式,经过换算后就可得到B表的第9行数据了。
公式为=(ROW()+2)/3

结果

《【excel】隔行引用另一表中连续数据》

公式释义

INDEX函数的第一个参数定义所要引用的数据范围为B表中的A列~D列,将之前所得公式代入第二个参数,得到该单元格对应于B表中的相应行号,第三个参数列号取1,即B表中的A列,如此即可得到编码值。
将公式复制进材料名称栏,将第三个参数列号改为2,即B表中的B列,就可以得到物料名称数据值;改为3则可以得到规格数据值。

2019-02-21更新

重新思考分析过程,A表中为差值3的等差数列,那么将A表中的数除以3,然后向下取整,则可得到0,1,2,3,……连续数,再加1即可得到B表中的对应数值。
那么公式可修改为=INT(ROW()/3)+1
(注:不过这个公式增加了一个取整函数,对资源利用率应该是不如上个公式的)

2019-02-23更新

新学到一个函数OFFSET,以指定的引用为参考值,通过给定的偏移量返回新的引用
《【excel】隔行引用另一表中连续数据》

分析

如图的表格,每隔8行调用数据,从第三行开始填充数据,可填写如图公式达到目的

公式释义

OFFSET函数的语法格式:OFFSET(定义引用值,行偏移量,列偏移量,引用多少行,引用多少列)例如OFFSET(A1,2,3,1,1)表示从A1单元格向下偏移2行,向右偏移3列所在的单元格,即C3单元格。如果要向上或向左引用,数字为负值。
ROW()/8,除非遇到8的倍数行,否则所得值为一小数值,而且其值的整数位从0开始,达到或超过8的倍数行加1,用这个特性,将预录入编码表的A1为绝对引用值,第一个计算值0引用A1本身,第二个计算值1引用从A1向下偏移1的单元格,以此类推。

    原文作者:懒懒的狗头
    原文地址: https://blog.csdn.net/weixin_44564019/article/details/87458198
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞