EXCEL中,VLOOKUP函数的第三参数,是指希望返回第几列的数据,这个参数往往用数字表示,是固定的,如果在源信息表里增减列,就不会返回想要的结果,不随增减列影响结果的方法:返回列的序号,用表达式,而不用固定数字序号,比如:=VLOOKUP(C2,Sheet1!A:N,COLUMN(Sheet1!N1),0),这里要返回N列的数据,不直接用14,而是用COLUMN(Sheet1!N1),来生成14,这样当源表增减列时,N1也会随之变化,自动变成取原先想要的那列数据; 增加列时不会出错,删除列时要注意,一定不能删除公式中引用到的列,否则结果为错误值;源表与待返回单元格不在一个工作表时,返回列序号的函数引用中,一定要加源表的工作表名,比如:COLUMN(Sheet1!N1),这样引用才会随源表增减变动。
太复杂在办公室无法细致的解决...因为match只能取第一个,所以用index来取数的时候,如果有多个相同条件,一般不用index+match,而是index+small+if,如果方便而且不着急的话,可以发给我我下班回家研究一下=。=
=INDEX(D:D,SMALL(IF($C$2:$C$5000=$H$13,ROW($2:$5000),10000),ROW(A1)))&""
在你黄色的那里输入这个函数,三建输入下拉就行了
刚H13用了H1, 失误失误
EXCEL中,VLOOKUP函数的第三参数,是指希望返回第几列的数据,这个参数往往用数字表示,是固定的,如果在源信息表里增减列,就不会返回想要的结果,不随增减列影响结果的方法:
返回列的序号,用表达式,而不用固定数字序号,比如:=VLOOKUP(C2,Sheet1!A:N,COLUMN(Sheet1!N1),0),这里要返回N列的数据,不直接用14,而是用COLUMN(Sheet1!N1),来生成14,这样当源表增减列时,N1也会随之变化,自动变成取原先想要的那列数据;
增加列时不会出错,删除列时要注意,一定不能删除公式中引用到的列,否则结果为错误值;
源表与待返回单元格不在一个工作表时,返回列序号的函数引用中,一定要加源表的工作表名,比如:COLUMN(Sheet1!N1),这样引用才会随源表增减变动。