通过使用公式或vlookup的Excel连接

我有两张excel工作簿。 我需要与SITEID相匹配的公式,并将3个值连接到1,用/分隔。 我试图使用Vlookup范围,但没有得到实际的结果。

第一张包含(4列):

SiteId Cell Sector Bore MDLH1238 12381 1 10 MDLH1238 12382 2 20 MDLH1238 12383 3 40 MDLH1239 12391 1 60 MDLH1240 12401 1 50 MDLH1240 12402 2 20 

第二张包含(2列):

 SiteId Bore MDLH1238 MDLH1239 MDLH1240 

预期的结果应该是这样的:

 SiteId Bore MDLH1238 10/20/30 MDLH1239 60 MDLH1240 50/20 

假设每个站点只有3个扇区,并且使用工作表名称,并且假设您的单元格以A1开头,请在Sheet2中input以下站点ID:

单元格B2:

 =SUMIFS(Sheet1!$D$2:$D$7,Sheet1!$A$2:$A$7,A2,Sheet1!$C$2:$C$7,1)&"/"&SUMIFS(Sheet1!$D$2:$D$7,Sheet1!$A$2:$A$7,A2,Sheet1!$C$2:$C$7,2)&"/"&SUMIFS(Sheet1!$D$2:$D$7,Sheet1!$A$2:$A$7,A2,Sheet1!$C$2:$C$7,3) 

单元格B3:

 =SUMIFS(Sheet1!$D$2:$D$7,Sheet1!$A$2:$A$7,A3,Sheet1!$C$2:$C$7,1)&"/"&SUMIFS(Sheet1!$D$2:$D$7,Sheet1!$A$2:$A$7,A3,Sheet1!$C$2:$C$7,2)&"/"&SUMIFS(Sheet1!$D$2:$D$7,Sheet1!$A$2:$A$7,A3,Sheet1!$C$2:$C$7,3) 

单元格B4:

 =SUMIFS(Sheet1!$D$2:$D$7,Sheet1!$A$2:$A$7,A4,Sheet1!$C$2:$C$7,1)&"/"&SUMIFS(Sheet1!$D$2:$D$7,Sheet1!$A$2:$A$7,A4,Sheet1!$C$2:$C$7,2)&"/"&SUMIFS(Sheet1!$D$2:$D$7,Sheet1!$A$2:$A$7,A4,Sheet1!$C$2:$C$7,3) 

这应该产生如下内容:

 SiteId Bore MDLH1238 10/20/40 MDLH1239 60/0/0 MDLH1240 50/20/0 

这是2/3的扇区不存在的额外的“/ 0”条目,但公式变得越来越难以阅读,做到这一点。

编辑:添加处理“/ 0”的公式

单元格B2:

 =SUMIFS(Sheet1!$D$2:$D$7,Sheet1!$A$2:$A$7,A2,Sheet1!$C$2:$C$7,1)&IF(SUMIFS(Sheet1!$D$2:$D$7,Sheet1!$A$2:$A$7,A2,Sheet1!$C$2:$C$7,2)>0,"/"&SUMIFS(Sheet1!$D$2:$D$7,Sheet1!$A$2:$A$7,A2,Sheet1!$C$2:$C$7,2),"")&IF(SUMIFS(Sheet1!$D$2:$D$7,Sheet1!$A$2:$A$7,A2,Sheet1!$C$2:$C$7,3)>0,"/"&SUMIFS(Sheet1!$D$2:$D$7,Sheet1!$A$2:$A$7,A2,Sheet1!$C$2:$C$7,3),"") 

单元格B3:

 =SUMIFS(Sheet1!$D$2:$D$7,Sheet1!$A$2:$A$7,A3,Sheet1!$C$2:$C$7,1)&IF(SUMIFS(Sheet1!$D$2:$D$7,Sheet1!$A$2:$A$7,A3,Sheet1!$C$2:$C$7,2)>0,"/"&SUMIFS(Sheet1!$D$2:$D$7,Sheet1!$A$2:$A$7,A3,Sheet1!$C$2:$C$7,2),"")&IF(SUMIFS(Sheet1!$D$2:$D$7,Sheet1!$A$2:$A$7,A3,Sheet1!$C$2:$C$7,3)>0,"/"&SUMIFS(Sheet1!$D$2:$D$7,Sheet1!$A$2:$A$7,A3,Sheet1!$C$2:$C$7,3),"") 

单元格B4:

 =SUMIFS(Sheet1!$D$2:$D$7,Sheet1!$A$2:$A$7,A4,Sheet1!$C$2:$C$7,1)&IF(SUMIFS(Sheet1!$D$2:$D$7,Sheet1!$A$2:$A$7,A4,Sheet1!$C$2:$C$7,2)>0,"/"&SUMIFS(Sheet1!$D$2:$D$7,Sheet1!$A$2:$A$7,A4,Sheet1!$C$2:$C$7,2),"")&IF(SUMIFS(Sheet1!$D$2:$D$7,Sheet1!$A$2:$A$7,A4,Sheet1!$C$2:$C$7,3)>0,"/"&SUMIFS(Sheet1!$D$2:$D$7,Sheet1!$A$2:$A$7,A4,Sheet1!$C$2:$C$7,3),"") 

输出:

 SiteId Bore MDLH1238 10/20/40 MDLH1239 60 MDLH1240 50/20 

你希望能够做的是用“/”作为分隔符连接一个数组的元素。 不幸的是,本地Excel不能做到这一点,但是已经有很多已经编写好的VBA函数可以使用,比如这里所描述的。

所以我会build议这个解决scheme:

 =StringConcat("/",IF(Sheet1!A$2:A$7=A2,Sheet1!D$2:D$7,"")) 

从第二张单元格B2开始,并根据需要拉下。 这是一个数组公式,必须使用Ctrl Shift Enterinput

为了使用StringConcat函数,需要从网页上复制代码,按Alt F11 ,selectInsert | Module,然后粘贴代码。

在这里输入图像说明