请教一EXCEL取数问题

2025-05-06 16:00:55
推荐回答(4个)
回答1:

给个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 的宏即可(工具——宏——运行宏)

回答2:

假定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结束公式输入,右拉填充

回答3:

C2=LOOKUP(1,0/(1-COUNTIF($C$1:C1,$A$1:$A$50)),$A$1:$A$50)
公式向下拉,C1留空或写别的,不要是跟随机数里重复的就行了

回答4:

在B50输入 =IF(COUNTIF($B$50:B50,B50)=1,B50,""),向上拉,如有有数字的就是唯一的输入,如有不唯一,则为空