簡體   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