![](/img/trans.png)
[英]if cell in column A is blank then vlookup column B against dataset in different sheet
[英]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中获得所需的结果。请尝试以下步骤
在公式下方,从第2行(即C2)开始到C列的所有行。 这将检查当前行的A列上的值是否与上一行相似,并将B列的值附加到C列中针对上一行的计算值。
= IF(A2 = A1,(C1&“,”&B2),B2)
对于D列的所有行,将公式放在第1行开始的下方
= IF(A1 = A2, “”, “改变”)
这应该用“ Changed”填充D列的某些行,然后可以仅针对包含“ Changed”作为值的记录过滤D列。
这应该得到您想要的结果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.