2014-10-08 2 views
0

У меня есть две колонки в моем первенствовать лист, пример ниже: -Объединение двух списков для сравнения (Excel)

typeA  typeB 

cat   product 
fish  organs 
chicken  slaughter 
goat  live 

Мне нужно объединить ячейки в каждом столбце друг с другом, как это: -

typeC 

cat_product 
cat_organs 
cat_slaughter 
cat_live 
fish_product 
fish_organs 
... 
... 
goat_slaughter 
goat_live 

Я знаю, что мы можем использовать CONCATENATE для объединения ячеек, но как это сделать итерации между двумя столбцами? Каждое значение в ячейках в столбце typeA должно сочетаться с каждым значением в ячейках в столбце типа B.

Спасибо!

+0

Эй, @antsemot - если бы любой из наших ответов помог, не забудьте проголосовать за них и/или принять ответ, чтобы другие могли учиться у них. – Daniel

+0

Спасибо, что согласились, @antsemot! – Daniel

ответ

0

Следующий код создает массив (MyArray) со всеми необходимыми значениями. Вы можете манипулировать этим массивом, как вам нравится.

Sub Combine() 
Dim MyArray() As String 
Dim i, k As Integer 
Dim msg As String 

Array1 = Array("cat", "fish", "chicken", "goat") 
Array2 = Array("product", "organs", "slaughter", "live") 

i = 1 

k = (UBound(Array1) + 1) * 4 

ReDim MyArray(1 To k) 

For Each x In Array1 

    For Each y In Array2 

     MyArray(i) = x & "_" & y 

     i = i + 1 

    Next 

Next 

'display the results in a MsgBox  

For i = LBound(MyArray) To UBound(MyArray) 
    msg = msg & MyArray(i) & vbNewLine 
Next i 

MsgBox msg 

End Sub 
0

Предполагая, что cat находится в A3, скопируйте B3: B6 в C1 и вставьте Special, Transpose. Затем в С3:

=$A3&"_"&C$1 

и копировать взад и вперед, чтобы удовлетворить.

Смежные вопросы