excel引用跨列数据
2015-10-15 · 知道合伙人软件行家
方法:
1.在引用时加上工作表名称即可
=sheet1!a1+sheet2!b2
公式下拉
2.用vlookup函数公式引用
=VLOOKUP($A1,Sheet1!$A$1:$AB$1000,COLUMN(),FALSE)
公式下拉右拉均可。
INDEX函数用于交叉引用查找数据,它返回指定的行与列交叉处的单元格数值,有引用形式和数组形式两种用法,引用形式可以有多个不连续的区域,数组形式通常返回数值或数值数组,下面来说一下它们的具体用法。
方法/步骤
如上图,应用index函数查找某一货物所在的库位及数量。在index引用形式下,其语法格式为:INDEX(reference,row_num,column_num,area_num) reference 是对一个或多个单元格区域的引用,如本例,只引用了一个单元格区域A2:D9,也就是要查找的区域范围,Row_num 所在区域的行号,Column_num 所在区域的列号,如本例中两个公式所示。
如上图,在这个例子中,公式用到了INDEX函数的第4个参数:area_num, 它指的是:选择引用中第几个区域,如本例中,A15=INDEX((A2:D9,C2:D9),4,2,2),引用中有两个区域,分别是:A2:D9和C2:D9,area_num 设置的是2,即引用第二个区域:C2:D9,它表明要返第2个区域中 row_num 和 column_num 的交叉处的数值。选中或输入的第一个区域序号为 1,第二个为 2,以此类推。如果省略 area_num,则函数 INDEX 使用区域 1。
注意:多个 区域应用()括起来。
其实要实现这一功能,可以用VLOOKUP 函数代替。
下面来说一下INDEX函数的数组形式。
语法格式:INDEX(array,row_num,column_num)
Array 为单元格区域或数组常量。
如果数组只包含一行或一列,则相对应的参数 row_num 或 column_num 为可选参数。
如果数组有多行和多列,但只使用 row_num 或 column_num,函数 INDEX 返回数组中的整行或整列,且返回值也为数组。
Row_num 数组中某行的行号,函数从该行返回数值。如果省略 row_num,则必须有 column_num。
Column_num 数组中某列的列标,函数从该列返回数值。如果省略 column_num,则必须有 row_num。
如上图:用到的即是INDEX的数组形式,查询库区A内货物的明细信息。
公式解析:B15=INDEX(B2:E9,IF(E2:E9=B11,ROW(E2:E9)-1,65535),1)
首先这是一个数组公式,写完函数应用shift +ctrl +enter 三键输入!
IF(E2:E9=B11,ROW(E2:E9)-1,65535),指如果库位与B11中一致,则显示为该行所在行号并减1,因为表格有表头占用了第一行,因此就要减去1,如果库位不同就显示 65535。
因此IF 函数返回的结果是{1,2,3,4,65535,65535,65535,65535}
INDEX(B2:E9,IF(E2:E9=B11,ROW(E2:E9)-1,65535),1) 把区域B2:E9,中第1,2,3,4行第1列的数值显示出来,就得到了结果
由于65535中无数值因此后面的都显示错误。
其它2个公式类同。
2012-11-13 · 知道合伙人软件行家
把"表二!"改为 你的二个工作表名称 加上 !
=OFFSET(表二!$A$13,,COLUMN(A1)*3-3)
或者
=INDIRECT("表二!r13c"&COLUMN(A1)*3-2,)
=INDIRECT(ADDRESS(12+ROW(),1+(COLUMN()-1)*3,1,1,"表二"),1)
B1 C1 等向右填充
像A → D → G,后面全都是跨两列吗?那并不难啊……
=INDIRECT(ADDRESS(13,ROW()*2-1,,,"表二"))