2017-04-19 50 views
-1

我有一個關於excel的問題。按行列將excel行分組到一個單元格id

我有兩列,A列有一個數字,B有國家代碼。我正在尋找一種方法來自動通過100個成千上萬的行來對它們進行分組,以使它們看起來像下面那樣...

這是可行的嗎?我在一個完全喪失:(

THE END結果

6512 AG,AI,AW,BB,BL,BM, 
6513 BQ,BS,BZ,CA,CR 

起點 - 列A &乙

6512 AG 
6512 AI 
6512 AW 
6512 BB 
6512 BL 
6512 BM 
6513 BQ 
6513 BS 
6513 BZ 
6513 CA 
6513 CR 
+0

是排序的順序記錄(A列)? –

+1

你有嘗試過什麼嗎?如果有的話,你更有可能獲得幫助。 – SJR

+0

我做了SJR使用查找到VB,但似乎無法得到它的工作。我應該在這裏發佈我的例子。 –

回答

0

這些解決方案使用一個名爲級聯工作列結果

假設您的數據有一個標頭(根據需要調整公式),位於B6:C34(根據需要更改)如下圖所示。

數據由ID排序:

級聯結果:D7輸入這個公式。

= CONCATENATE(C7, IF(EXACT(B7, B8), "," & D8, "")) 

ID.Unique:輸入此Array FormulaE7FormulaArrays被輸入按下CTRL + SHIFT + ENTER 同時,你將看到{}各地該公式如果輸入正確

=IFERROR(INDEX($B$7:$B$34, 
MATCH(0, COUNTIF($E6:$E$6, $B$7:$B$34), 0) * 1), "") 

國家:F7

=IFERROR(VLOOKUP(E7,$B$6:$J$34,3,0),"") 

複製範圍D7:F7直到數據的最後一行輸入此公式(即第34行)

數據沒有排序:如果數據未排序輸入此公式對於連接結果D7所有其他公式保持不變

=CONCATENATE(C7, 
IF(ISERROR(MATCH(B7, B8:B$35, 0)), "", 
"," & VLOOKUP(B7, B8:D$35, 3, 0))) 

enter image description here

推薦閱讀以下網頁獲得的資源有了更深的瞭解使用:

Excel functions (alphabetical)Create an array formulaGuidelines and examples of array formulas

0

這是一個VBA解決方案

假設您的數據(不包括標題)位於B7:C34(根據需要更改)。

ID.Unique:輸入E7這個數組公式(FormulaArrays被輸入按下CTRL + SHIFT + ENTER 同時,你將看到{}周圍的公式如果輸入正確

=IFERROR(INDEX($B$7:$B$34, 
MATCH(0, COUNTIF($E6:$E$6, $B$7:$B$34), 0) * 1), "") 

國家:在F7在VBA模塊

Option Explicit 

Public Function Match_Concatenated(vValue As Variant, rTrg As Range) As String 
Dim sOutput As String 
Dim vTrg As Variant, vItm As Variant, lRow As Long 
    vTrg = rTrg.Value2 
    For lRow = 1 To UBound(vTrg) 
     vItm = WorksheetFunction.Index(vTrg, lRow, 0) 
     If vItm(1) = vValue Then sOutput = sOutput & Chr(44) & vItm(2) 
    Next 
    sOutput = Replace(sOutput, Chr(44), vbNullString, 1, 1) 
    Match_Concatenated = sOutput 
End Function 

推薦閱讀以下頁面,以獲得更深入的瞭解進入這User Defined Function(UDF)

=Match_Concatenated(E7,$B$7:$C$34) 

拷貝UDF代碼使用的資源:

Excel functions (alphabetical)

Create an array formula

Guidelines and examples of array formulas

Option Explicit Statement

Range.Value2 Property (Excel)For...Next Statement

WorksheetFunction Object (Excel)INDEX function

If...Then...Else StatementReplace Function

0

試試這個,並讓我知道在任何疑問的情況下,或者如果你需要詳細的解釋。

第一步:Filter通過柱A.
第二步中的數據:創建一個新的列C,其中使用此公式IF(A2=A1,CONCATENATE(B2,",",C1),B2)
第3步:使用此公式IF(A2=A3," ","REQUIRED_ANS")製作新的D列。
步驟4:使用​​D + F + F對列D進行過濾,您將獲得所需的輸出。

我的輸出:
enter image description here

相關問題