亲,可以用公式,不过最好用VBA。因为数据比较多的时候,数组公式运行起来会很慢。
请查收附件。演示效果和代码如下:
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/e824b899a9014c08e66c8ebf097b02087bf4f451?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
Sub pl()
Dim MyArr(1 To 4), ss As String
Dim i, j, n1, n2, n3, n4 As Long
ss = "ABCD"
Range("A:A").ClearContents
For n1 = 1 To 4
For n2 = 1 To 4
If n1 <> n2 Then
For n3 = 1 To 4
If n3 <> n1 And n3 <> n2 Then
For n4 = 1 To 4
If n4 <> n1 And n4 <> n2 And n4 <> n3 Then
If Range("A1:A" & Range("A" & Rows.Count).End(xlUp).Row).Find(Mid(ss, n1, 1) & Mid(ss, n2, 1) & Mid(ss, n3, 1) & Mid(ss, n4, 1)) Is Nothing Then
If Range("A1") = "" Then
Range("A1") = Mid(ss, n1, 1) & Mid(ss, n2, 1) & Mid(ss, n3, 1) & Mid(ss, n4, 1)
Else
Range("A" & Rows.Count).End(xlUp).Offset(1, 0) = Mid(ss, n1, 1) & Mid(ss, n2, 1) & Mid(ss, n3, 1) & Mid(ss, n4, 1)
End If
End If
End If
Next
End If
Next n3
End If
Next n2
Next n1
End Sub
追问如果我的
A换成了ABCD
B换成了wxyz
C换成了1234
D换成了9876
追答四个字符当成一组去参加排列吗?还是全部连成16个字符,全排列?
追问4个字符为固定的一组
追答嗯,要改一下代码,定义一个数组变量。明天发给你,今天太晚要休息了,抱歉哈~~~