Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
12
返回列表 发新帖
楼主: sjz0

[已解决]求高手解答关于EXCEL中字符串求交集问题

[复制链接]
发表于 2014-4-14 22:17 | 显示全部楼层
sjz0 发表于 2014-4-14 21:45
老兄,多谢你写的交集公式。本来想拿你的公式改一下,写出差集与并集的公式,无耐我太笨。
写不出来,能 ...

问题解决,请设置最佳答案
如果有新问题,重新发帖提问
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
回复

使用道具 举报

发表于 2014-4-14 22:46 | 显示全部楼层    本楼为最佳答案   
本帖最后由 香川群子 于 2014-4-14 22:57 编辑

一个自定义函数彻底解决。
包含k=0 补集 k=1 交集 k=2 并集 k=-1 差集 四种集合比较运算:

  1. Function jhys(A, B, Optional k = 1) '集合运算 的拼音首字母
  2.     'k=0 补集 k=1 交集 k=2 并集 k=-1 差集
  3.    
  4.     Dim c(99)
  5.     s = Split(A)
  6.     For i = 0 To UBound(s)
  7.         c(s(i)) = s(i)
  8.     Next
  9.    
  10.     s = Split(B)
  11.     If k = 0 Then '返回1-99的补集
  12.         For i = 0 To UBound(s)
  13.             c(s(i)) = s(i)
  14.         Next
  15.         For i = 1 To 99
  16.             If c(i) = 0 Then t = t & " " & Right(0 & i, 2)
  17.         Next
  18.     ElseIf k = 1 Then '返回AB交集(AB都含有)
  19.         For i = 0 To UBound(s)
  20.             If c(s(i)) Then t = t & " " & s(i)
  21.         Next
  22.     ElseIf k = 2 Then '返回AB并集(A或B含有)
  23.         For i = 0 To UBound(s)
  24.             c(s(i)) = s(i)
  25.         Next
  26.         For i = 1 To 99
  27.             If c(i) Then t = t & " " & Right(0 & i, 2)
  28.         Next
  29.     ElseIf k = -1 Then '返回A-B差集(A含B不含)
  30.         For i = 0 To UBound(s)
  31.             If c(s(i)) Then c(s(i)) = 0
  32.         Next
  33.         For i = 1 To 99
  34.             If c(i) Then t = t & " " & Right(0 & i, 2)
  35.         Next
  36.     End If
  37.     jhys = Mid(t, 2)
  38. End Function
复制代码

写出差集与并集.rar

14.96 KB, 下载次数: 14

回复

使用道具 举报

发表于 2014-4-14 22:52 | 显示全部楼层
补充:

k=0 时返回 1-99的补集合时,参数A、参数B的指定方法不同,结果不同。

1. =jhys(A1,A1,0) 时,计算返回A1单元格中集合A对于1-99总集的补集。

2. =jhys(A1,A2,0) 时,计算返回A1、A2单元格中集合A、集合B的并集对于1-99总集的补集。
回复

使用道具 举报

 楼主| 发表于 2014-4-15 15:15 | 显示全部楼层
香川群子 发表于 2014-4-14 22:52
补充:

k=0 时返回 1-99的补集合时,参数A、参数B的指定方法不同,结果不同。

多谢,多谢,受益非浅!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-4 16:21 , Processed in 0.251629 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表