EXCEL排列组合公式?

A列
1
2
3
B列
1
2
3
使用函数(可能需要自己编写)
C列
11
12
13
21
22
23
31
32
33
我的意思是让A列的每一个数与B的每一个数进行合并。请问如何编写函数呢?
如果扩展到A列有M个数,B列有N个数,最后C列应该有M×N个数,怎么编写呢?

任意单元格公式:
=IF(ROW(A1)>9,"",INDEX(A:A,ROW(A3)/3)&INDEX(B:B,1+MOD(ROW(A3),3)))
向下填充

-----------------
如果扩展到A列有M个数,B列有N个数,最后C列应该有M×N个数
公式改为:
=IF(ROW(A1)>【M*N】,"",INDEX(A:A,ROW(A【N】)/【N】)&INDEX(B:B,1+MOD(ROW(A【N】),【N】)))
向下填充 注意【】及里面的字母要换成实际数字
-----------
例:A列有5个数,B列有7个数,最后C列应该有35个数
公式改为:
=IF(ROW(A1)>35,"",INDEX(A:A,ROW(A7)/7)&INDEX(B:B,1+MOD(ROW(A7),7)))
向下填充
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-12-10
=OFFSET($A$2,INT((ROW()-2)/3),0,,) & "-" & OFFSET($B$2,MOD(ROW()-2,3),0,,)
注明:-2是因为我公式从第二行开始,你根据自己的更改。两处。
$A$2、$B$2是1所在的位置,列向的。如果横向,offset里的逗号位置更改。
& "-" 链接符号,你可以删去。本回答被提问者和网友采纳
第2个回答  2012-12-23
sub zuhedaima()
Dim My_Choice As Integer
Dim i As Integer, j As Integer
Dim My_A As Integer, My_B As Integer '各列的行数
My_Choice = MsgBox("选择否就要分别输入A列B列行数", vbYesNo, "是否自动检测?")
If My_Choice = 7 Then
My_A = InputBox("A列的行数") * 1
My_B = InputBox("B列的行数") * 1
Else
Do While Cells(My_A + 1, 1) <> ""
My_A = My_A + 1
Loop
Do While Cells(My_B + 1, 2) <> ""
My_B = My_B + 1
Loop
End If
If My_A * My_B <> 0 Then
For i = 1 To My_A
For j = 1 To My_B
Cells.Range("C" & (i - 1) * My_B + j).Value = _
Cells.Range("A" & i).Value & Cells.Range("B" & j).Value
Next
Next
End If
End Sub
第3个回答  2012-12-10
如果a列的1在a1,c1输入公式:
=OFFSET($A$1,(ROW(A1)-1)/3,0)&OFFSET($B$1,MOD(ROW(A3),3),0)
下拉填充8个单元格即可按照提问者要求排列。
相似回答