2015-08-20 96 views
0

我有一個質量串聯兩列數據的問題,不知道如何去做。我不擅長excel,所以任何人都可以提供任何可行的見解,這些見解很棒。Excel混合匹配連接列

基本上我有兩列數據,一列是一列服務類型,另一列是帶有地理修飾符的列。例如:

_____A______ _________________B_________________ 
Geo-modifier Service 
New York  search engine optimization 
Los Angeles seo services 
Chicago  seo optimization 
Houston  seo marketing 
Philadelphia seo service 
Phoenix  best seo 
San Antonio search optimization 
San Diego  search engine optimization services 

所以我想要做的與concatenate是附加geo修飾符到所有的服務單詞。例如:

_________________C_________________ 
new york search engine optimization 
new york seo services 
new york seo optimization 
etc 

然後當它到達服務列表的底部時,它將轉到下一個查詢並再次連接到列表的底部。示例LA搜索引擎優化,LA SEO服務,LA SEO優化!

鑑於上述情景,我如何以最簡單的方式做到這一點?

+1

您還沒有表示是否由說VBA或公式。你期望多久需要一次? – pnuts

+0

只是爲了澄清...... A列中的每個Geo-modifer位置將與B列中的每個單獨服務連接,並且所有這些組合都將輸出到C列? –

回答

0

在C2單元格並複製下來,調整範圍,以適應:

=INDEX($A$2:$A$9,INT((ROW(A2)-2)/ROWS($B$2:$B$9))+1)&" "&INDEX($B$2:$B$9,MOD(ROW(B2)-2,ROWS($B$2:$B$9))+1) 
0

這裏是一個VBA解決方案進入到一個新的代碼模塊:

Public Sub MixMatch() 
    Dim i&, j&, c& 
    Dim vIn1, vIn2, vOut 
    vIn1 = [A2:INDEX(A:A,COUNTA(A:A))] 
    vIn2 = [B2:INDEX(B:B,COUNTA(B:B))] 
    ReDim vOut(1 To UBound(vIn1) * UBound(vIn2), 1 To 1) 
    For i = 1 To UBound(vIn1) 
     For j = 1 To UBound(vIn2) 
      c = c + 1 
      vOut(c, 1) = vIn1(i, 1) & " " & vIn2(j, 1) 
     Next 
    Next 
    [c2].Resize(UBound(vOut)) = vOut 
End Sub