EXCEL求给定数据的补集
事例:某单元格有若干数据(数字或字母等 用空格隔开),现在有已知的一部分数据,求已知数据的补集.
比如:A3单元格有数据 1 2 3 4 5 6 7 8 9 0;已知B3: 1 2 5 7 ,在C3中求B3的补集.
(希望可以描述下公式 学习下. VBA也说明下)
比如:A3单元格有数据 1 2 3 4 5 6 7 8 9 0;已知B3: 1 2 5 7 ,在C3中求B3的补集.
(希望可以描述下公式 学习下. VBA也说明下)
问题补充:补充一个:如果各个数据在独立的单元格内,如A列为基础数据,B列为已知数据,在C列求B列的补集?
我用的是自定义函数
首先按下ATL+F11进入VBA编辑界面,然后菜单-插入-模块,然后复制下面的代码.退出.然后在C3中输入
=BJ(A3,B3)
即可
以上公式,可以通用来求后个单元格对于前个单元格的补集.
Public Function BJ(ByVal M As String, ByVal N As String) As String
Dim x, y
a = Split(N, " ")
b = Split(M, " ")
For x = LBound(a) To UBound(a)
For y = LBound(b) To UBound(b)
If a(x) = b(y) Then
b(y) = ""
End If
Next
Next
For x = LBound(b) To UBound(b)
If b(x) <> "" Then
BJ = BJ & b(x) & " "
End If
Next
End Function
*****************
假设你的数据分别在A1:A1000,B1:B1000
在C1输入下面公式
=SMALL(IF($A$1:$A$1000="","",IF(ISERROR(MATCH($A$1:$A$1000,$B$1:$B$1000,0))*1,$A$1:$A$1000,"")),ROW())
以CTRL+SHIFT+ENTER确认
然后向下填充.出现正常数字或字母的单元格,就是它的补集.