给个VBA的,取8个不重复的,放到B1-B8中,代码如下
Sub asd()
Dim num(1 To 8)
a = 0
For i = 1 To 8
num(i) = Cells(Cells(65536, 1).End(xlUp).Row - a, 1)
a = a + 1
For ii = 1 To i - 1
If num(i) = num(ii) Then
num(i) = Cells(Cells(65536, 1).End(xlUp).Row - a, 1)
a = a + 1
ii = 0
End If
Next ii
Cells(i, 2) = num(i)
Next i
End Sub
用的时候打开你的Excel在任意一个表名上(sheet1/sheet2/sheet3...)单击鼠标右键选择“查看代码”然后在出来的窗口中选择:插入——模块 将以上的代码复制到新插入的模块中,关闭窗口返回Excel界面,在Excel中将宏安全性改为“中”(工具——宏——安全性)保存并重新打开Excel会询问你是否启用宏,选择启用。然后在Excel中运行名字为 asd 的宏即可(工具——宏——运行宏)
假定8个数放在A51——H51
A51
=A50
B51
=IF(COLUMN(A1)<8,INDIRECT("A"&MAX((MMULT(N($A1:$A50<>$A51:A51),TRANSPOSE(COLUMN($A51:A51)^0))=COLUMNS($A51:A51))*ROW($A1:$A50))),"")复制公式到C101按组合键ctrl+shift+enter结束公式输入,右拉填充
C2=LOOKUP(1,0/(1-COUNTIF($C$1:C1,$A$1:$A$50)),$A$1:$A$50)
公式向下拉,C1留空或写别的,不要是跟随机数里重复的就行了
在B50输入 =IF(COUNTIF($B$50:B50,B50)=1,B50,""),向上拉,如有有数字的就是唯一的输入,如有不唯一,则为空