通过使用公式或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,然后粘贴代码。