结合两个列表进行比较(Excel)

时间:2014-10-08 00:03:02

标签: excel vba formula

我的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来组合单元格,但是我如何在两列之间进行迭代?列类型A中的单元格中的每个值必须与列类型B中的单元格中的每个值组合。

谢谢!

2 个答案:

答案 0 :(得分:0)

假设cat在A3中,将B3:B6复制到C1并选择Paste Special,Transpose。然后在C3:

=$A3&"_"&C$1  

并反复复制以适应。

答案 1 :(得分: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