第1个回答 2015-11-03
在全部零部件表的D2单元格输入以下公式,然后向下填充公式
=VLOOKUP(C2,INDIRECT(VLOOKUP(LEFT(B2,LEN(B2)-1),{"BG","国产件";"XY","进口件";"YCL","原材料"},2,0)&"!C:D"),2,0)
公式中:
1、VLOOKUP(LEFT(B2,LEN(B2)-1),{"BG","国产件";"XY","进口件";"YCL","原材料"},2,0)表示将B2单元格的图号字符串与工作表名建立查找引用;
2、将步骤1的引用结果通过INDIRECT函数引用为工作表的表名及区域INDIRECT(公式&"!C:D");
3、通过VLOOKUP函数在引用的表名及区域中精确匹配与C2单元格相同的单元格,返回对应第2列的单价。
此类问题,以附件方式解答较为方便,同表举例时,公式完全无法适用,请参照公式的解析,在原有工作表中输入验证。
第2个回答 推荐于2018-03-10
因为仅从三个子表中取数据,所以用下面的函数吧
=iferror(vlookup(B2,国产件!B:D,3,0),iferror(vlookup(B2,进口件!B:D,3,0),vlookup(B2,原材料件!B:D,3,0)))
如果涉及从更多工作表中取数据,则可用VBA解决。本回答被提问者和网友采纳
第4个回答 2018-03-10
这个任务一时半会,说不清楚,不管是要解决问题还是需要学习函数,我都愿意帮你。私信联系吧!我先按自己的理解,试着在线解决一下,你的问题,为了公式便于理解,请先将三个有单价的表格的B列分别定义成“国产件”、“进口件”、“原材料”,然后将下面的公式复制到“全部零部件”表的D2单元格,下拉即可:
=IF(ISERROR(MATCH(B2,国产件,0)),IF(ISERROR(MATCH(B2,进口件,0)),IF(ISERROR(MATCH(B2,原材料,0)),"",INDEX(OFFSET(原材料,0,0,,3),MATCH(B2,原材料,0),3)),INDEX(OFFSET(进口件,0,0,,3),MATCH(B2,进口件,0),3)),INDEX(OFFSET(国产件,0,0,,3),MATCH(B2,国产件,0),3))