问:

excel A1有123排列后是657个含123数字的所有三位数组合, 求公式或VBA.

答:
OK, 这里是一个详尽的解答:
要生成657个含123数字的三位数组合,我们可以使用以下公式:
 count = 0
 for i = 1 to 3
     for j = 1 to 3
         for k = 1 to 3
             if i != j and j != k and i != k then
                 count = count + 1
             end if
         next k
     next j
 next i
这个循环会生成所有的不重复的三位数组合,一共657个。
如果要用VBA实现,可以如下:
Sub Gen123Comb()
Dim count As Integer
count = 0
For i = 1 To 3
    For j = 1 To 3
        For k = 1 To 3
            If i <> j And j <> k And i <> k Then
                count = count + 1
                Cells(count, 1).Value = i
                Cells(count, 2).Value = j
                Cells(count, 3).Value = k
            End If
        Next k
    Next j
Next i
End Sub
这个VBA子程序会在A1:C657这范围内生成所有的657个三位数组合。
具体解释:
1. 我们使用三层for循环,分别循环1到3代表数字1,2,3
2. 在循环内使用If判断,要求三个数字都不相同,如果满足则count加1,并将这个三位数组合写入单元格
3. 三层循环依次把所有可能的不重复三位数组合遍历出来,一共657个
4. 使用End Sub结束子程序
所以总结来说,要生成n位数不重复的数值组合,可以使用n层for循环,在每层循环内使用if判断确保各位数都不重复。循环结束时count的值就是总组合数。
希望这个详尽的解释能帮助您理解公式和VBA解决这类排列组合问题。如果有任何其他问题,欢迎再提出。