|
本帖最后由 sjz0 于 2014-4-9 16:03 编辑
A1= 01 02 03 04 09 12 22 88 93 -------------不大于100,
A2=01 04 22 67
A3中要求出A1与A2的交集,应该是01 04 22
怎么样才能求出?要用VBA才行吗?望大侠不吝赐教,多谢,多谢
本人菜鸟一名,最好能上传一下文件,多谢多谢。
本帖最后由 香川群子 于 2014-4-14 22:57 编辑
一个自定义函数彻底解决。
包含k=0 补集 k=1 交集 k=2 并集 k=-1 差集 四种集合比较运算:
- Function jhys(A, B, Optional k = 1) '集合运算 的拼音首字母
- 'k=0 补集 k=1 交集 k=2 并集 k=-1 差集
-
- Dim c(99)
- s = Split(A)
- For i = 0 To UBound(s)
- c(s(i)) = s(i)
- Next
-
- s = Split(B)
- If k = 0 Then '返回1-99的补集
- For i = 0 To UBound(s)
- c(s(i)) = s(i)
- Next
- For i = 1 To 99
- If c(i) = 0 Then t = t & " " & Right(0 & i, 2)
- Next
- ElseIf k = 1 Then '返回AB交集(AB都含有)
- For i = 0 To UBound(s)
- If c(s(i)) Then t = t & " " & s(i)
- Next
- ElseIf k = 2 Then '返回AB并集(A或B含有)
- For i = 0 To UBound(s)
- c(s(i)) = s(i)
- Next
- For i = 1 To 99
- If c(i) Then t = t & " " & Right(0 & i, 2)
- Next
- ElseIf k = -1 Then '返回A-B差集(A含B不含)
- For i = 0 To UBound(s)
- If c(s(i)) Then c(s(i)) = 0
- Next
- For i = 1 To 99
- If c(i) Then t = t & " " & Right(0 & i, 2)
- Next
- End If
- jhys = Mid(t, 2)
- End Function
复制代码
|
|