2016-10-01 73 views
2

我有一個數據集是這樣的:加入/ Concatinate列文本基於標準

A B C 
---------- 
1 A blue 
1 A red 
1 B blue 
2 A red 
3 B blue 
3 B green 
3 C blue 
4 C blue 
4 A blue 
4 A green 

而且這樣一個單獨的表(這是已經在使用UNIQUE()自動生成):

E F G 
----- 
1 A 
1 B 
2 A 
3 B 
3 C 
4 C 
4 A 

我想加入列C中的文本,並根據列E和F中給出的條件在列G中顯示結果。我要查找的結果如下所示(所有連接/連接的文本應該在列G中):

E F G 
----- 
1 A blue red 
1 B blue 
2 A red 
3 B blue green 
3 C blue 
4 C blue 
4 A blue green 

可選,不需要,但會很好:生成的文本之間的分隔符是行制動器,因此每行都在同一行內的單獨行中。

謝謝。

回答

3

地方在列A到C. 第一個表(數據表/ 1,2,3)和列E另一個表(5,6,7)至G

輸入G2陣列式如下

{=CONCAT(IF(A2:A11&B2:B11=E2&F2,C2:C11&" ",""))} 

你會得到你的結果。

enter image description here

對於早期版本中,我們需要創建UDF

Function ConcatUDF(rng() As Variant, ByVal delim As String) As String 
Dim a, i As Long 
For i = 1 To UBound(rng, 1) 
    If rng(i, 1) <> "" Then 
    ConcatUDF = ConcatUDF & _ 
     IIf(ConcatUDF = "", "", delim) & rng(i, 1) 
    End If 
Next 
End Function 

,我們將得到的結果。

enter image description here

編輯:

我忘了絕對引用。請考慮以下提及的公式。

與CONCAT公式建立的Excel 2016

=CONCAT(IF($A$2:$A$11&$B$2:$B$11=E2&F2,$C$2:$C$11&" ","")) 

與UDF的早期版本的Excel

FWIW的
=ConcatUDF(IF($B$2:$B$11&$A$2:$A$11=F2&E2,$C$2:$C$11,"")," ") 
+0

:CONCAT僅在Office 365 Excel中可用。它在早期版本中不可用。 –

+0

@ScottCraner感謝您的評論。請檢查編輯的版本。 –

+0

謝謝你的回答。但是,對於您使用的數據集,不應該爲A 4生成的單元格G8包含「紅色藍色綠色」?你的公式只連接了兩個字符串嗎? –