繁体   English   中英

将单个单元格中的B列行值与A列连接

[英]Concatenate column B row values in single cell against column A

我在“ A”列中有大约400多个记录的数据,在“ B”列中有各种详细信息。 工作表中共有3000多个行,例如:

Column A    Column B

CHI150  UPS1

CHI150  TOWER1

CHI150  TOWER2

CHI160  EB1

CHI160  UPS1

CHI160  TOWER1

CHI163  EB1

CHI163  TOWER2

CHI163  UPS2

CHI195  TOWER1

CHI195  EB1

我想像下面提到的那样连接数据。

Column A    Column B

CHI150  UPS1, TOWER1, TOWER2

CHI160  EB1, UPS1, TOWER1

CHI163  EB1, TOWER2, UPS2

CHI195  TOWER1, EB1

请给解决方案,并在此先感谢

假设您在A和B列中分别有来自A2和B2单元的数据。

 Sub test() 'change the sheet name as yours Sheets("Sheet1").Activate 'Change the range as yours and you need update the column as well in cells(rows.count,1) Set Rng = Range("A2", Cells(Rows.Count, 1).End(xlUp)) Set rng1 = Range("D2", Cells(Rows.Count, 4).End(xlUp)) Range("A2", Cells(Rows.Count, 1).End(xlUp)).Copy 'copy pasteing the column A and removing duplicates Range("D2").PasteSpecial xlPasteValues ActiveCell.RemoveDuplicates Columns:=1, Header:=xlNo ' now concordinating the values For Each cell In rng1 For Each cell1 In Rng If cell.Value = cell1.Value Then If cell.Offset(0, 1).Value = "" Then cell.Offset(0, 1).Value = cell1.Offset(0, 1).Value Else cell.Offset(0, 1).Value = cell.Offset(0, 1).Value & ", " & cell1.Offset(0, 1).Value End If End If Next cell1 Next cell End Sub 

在此处输入图片说明

上面的宏将在D列的D2表格中生成结果。 希望这是您的期望。

感谢您对问题进行更改以更好地说明问题。

我制作了一个与您的问题类似的样本表,并能够在新的列C中获得所需的结果。请尝试以下步骤

  1. 将B1的值复制到C1
  2. 在公式下方,从第2行(即C2)开始到C列的所有行。 这将检查当前行的A列上的值是否与上一行相似,并将B列的值附加到C列中针对上一行的计算值。

    = IF(A2 = A1,(C1&“,”&B2),B2)

  3. 对于D列的所有行,将公式放在第1行开始的下方

    = IF(A1 = A2, “”, “改变”)

  4. 这应该用“ Changed”填充D列的某些行,然后可以仅针对包含“ Changed”作为值的记录过滤D列。

这应该得到您想要的结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM