2015-09-16 23 views
-1

如果某行重复,是否有连接多个列的方法?我有一个电子表格,其中列A有重复的团队,但有区域和LD(列b和c)是不同的值。我想在列E中制定一个公式,在那里它将连接B列和C以及短划线并附加下一行值。看到附加的图片突出显示的行E.任何想法如何用Excel公式做到这一点,或可能是VBA。我在列E = IF(A3 = A4,D3 &“;”& D4)中尝试过这个公式,但它对最后一个重复行返回false。如何根据重复次数进行连接 - MS Excel

enter image description here

+2

'...串联列B和C与前围并追加下一行values.'在E列,每个值似乎遵循此说明,除了'E4'和'E8'外。这两个单元的规则是什么? –

+0

我添加了列D并做了连接。列只是一个连接的if公式,但它并不像我想要的那样工作。列E的第2行和第3行应该为空,列E的第3行应该连接值,因为团队400重复3次。同样适用于球队660 –

+0

这些球队(A列)是否按照图像的顺序排列? –

回答

1

这不适用于公式。它需要一个基于VBA的解决方案。

我为你写了一个自定义程序。请把这个在标准代码模块:

Public Sub ConcatTeamZones() 
    Const SOURCE = "A1" 
    Const OUTPUT = "E1" 
    Dim i&, j&, s$, v, w 
    v = Range(SOURCE).CurrentRegion 
    ReDim w(1 To UBound(v), 0) 
    For i = 2 To UBound(w) 
     If v(i, 1) <> v(i - 1, 1) Then 
      w(i - 1, 0) = s 
      s = s & v(i, 2) & "-" & v(i, 3) 
      s = "" 
     Else 
      s = s & ";" 
     End If 
     s = s & v(i, 2) & "-" & v(i, 3) 
    Next 
    w(i - 1, 0) = s 
    Range(OUTPUT).Resize(UBound(w)) = w 
End Sub 

然后从工作表与您的团队的数据,按ALT-F8进入宏对话框。运行ConcatTeamZones宏。

注1:这假设列A是排序的。注2:您可以编辑前两行,以指定哪些列包含源(团队数据)以及您希望输出的列。

+0

让我测试一下。谢谢你先生。英雄。我会很快通知你 –

+0

天才:一次尝试。我的天啊。非常感谢。 –

+0

不客气。 –

0

它可以使用公式来完成,它只是一个视角的事情:

假设数据是由团队

这个公式给出了最大的顶部组合连接的结果进行排序。在单元格E2中输入此公式并复制到最后一条记录。

=CONCATENATE($D2,IF(EXACT($A2,$A3),";"&$E3,"")) 

要分配最大可能的组合,以每队F2输入公式复制到最后记录。

=INDEX($E:$E,MATCH($A2,$A:$A,0),0) 

enter image description here

0

这是我会怎么做呢?

细胞 “A1”:= COUNTIF(B $ 2:B2,B2)& B2 - 这是创建一个唯一的密钥。复制了你的表的长度

然后我会用高级查询(用VBA也许)在“F”栏中创建团队唯一值的列表

细胞“G2”:= VLOOKUP( “1” & F2,A:d,3,0)& “ - ” & VLOOKUP( “1” & F2,A:d,4,0)& IF(ISERROR(VLOOKUP( “2” & F2,A: D,3,0)),“”,“,”& VLOOKUP(“2”& F2,A:D,3,0)&“ - ”& VLOOKUP(“2”& F2,A:D, 0))& IF(ISERROR(VLOOKUP(“3”(“3”F2,A:D,3,0) (D,4,0))& IF(ISERROR(VLOOKUP(“4”&F2,A:D,3,0))“”,“”& VLOOKUP(“4”& F2,A:D, 3,0)&“ - ”& VLOOKUP(“4”& F2,A:D,4,0))

此函数创建您的组合引用。如果您预计会出现4次以上的团队,则时间会更长。

只要复制 “IF(ISERROR(VLOOKUP(” 4" & F2,A:d,3,0)), “”, “” & VLOOKUP( “4” & F2,A:d,3, 0)& “ - ” & VLOOKUP( “4” & F2,A:d,4,0))”,并改变它的 “4” 到 “5” 等

可以隐藏栏A(整理) 。

对不起,我想包括图像,但声誉不够:-)

+0

对不起先插入列A ... –