如果一行重复,有没有办法连接多个列?我有一个电子表格,其中A列有重复的团队,但是区域和LD(列b和c)是不同的值。我希望在E列中有一个表达式,它将用短划线连接B列和C列并附加下一行值。请参阅附加图片突出显示的行E.任何想法如何使用excel公式或可能是VBA。我在E = IF列(A3 = A4,D3&“;”& D4)中尝试了这个公式,但是对于最后一个重复的行,它返回false。
答案 0 :(得分: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:您可以编辑前两行以指定哪些列包含源(团队数据)以及您希望输出的列。
答案 1 :(得分:0)
可以使用公式来完成,只是透视问题:
假设数据按团队
排序此公式给出了连接结果,顶部有最大组合。在单元格E2
中输入此公式并复制到最后一条记录。
=CONCATENATE($D2,IF(EXACT($A2,$A3),";"&$E3,""))
要为每个团队分配最多可能的组合,请在F2
中输入此公式并复制到最后一个记录。
=INDEX($E:$E,MATCH($A2,$A:$A,0),0)
答案 2 :(得分:0)
我会怎么做......
单元格“A1”:= COUNTIF(B $ 2:B2,B2)&amp; B2 - 这是创建一个唯一键。复制表格的长度
然后我会使用高级查询(可能使用vba)在“F”列中为团队创建唯一值列表
单元“G2”:= VLOOKUP(“1”和F2,A:D,3,0)&amp;“ - ”&amp; VLOOKUP(“1”和F2,A:D,4,0) &amp; IF(ISERROR(VLOOKUP(“2”&amp; F2,A:D,3,0)),“”,“,”&amp; VLOOKUP(“2”&amp; F2,A:D,3,0) &安培; “ - ” &安培; VLOOKUP( “2” &安培; F2,A:d,4,0))及IF(ISERROR(VLOOKUP( “3” &安培; F2,A:d,3,0)), “”,“,”&amp; VLOOKUP(“3”和F2,A:D,3,0)&amp;“ - ”&amp; VLOOKUP(“3”和F2,A:D,4,0)) &amp; IF(ISERROR(VLOOKUP(“4”&amp; F2,A:D,3,0)),“”,“,”&amp; VLOOKUP(“4”&amp; F2,A:D,3,0) &安培; “ - ” &安培; VLOOKUP( “4” &安培; F2,A:d,4,0))
此功能可创建组合参考。如果你期望超过4次出现的球队,那就更长了。
只需复制“IF(ISERROR(VLOOKUP(”4“&amp; F2,A:D,3,0)),”“,”,“&amp; VLOOKUP(”4“&amp; F2,A:D, 3,0)&amp;“ - ”&amp; VLOOKUP(“4”&amp; F2,A:D,4,0))“并将”4“改为”5“等
你可以隐藏A栏(整理)。
抱歉,我试图加入图片但信誉不足: - )