excel交集问题,高手快快现身吧!

M列和S列各有数位不一致的无数个数字如M213468S2016789M3012S323456789现在要取他们的交集到T列,如M2和S2列交集为168M3和S3列交集为2... M列和S列各有数位不一致的无数个数字
如M2 13468 S2 016789
M3 012 S3 23456789
现在要取他们的交集到T列,如 M2和S2列交集为 168
M3和S3列交集为 2
应该怎么样做,用excel是否能实现?请高手出手相助!
M S列的数位最少是1位,最多是10位。
无法使用分列,因为上面数字乃系公式提取,分列后显示的都是公式。
二楼的结果是:value
我的数据 是在 M列和S列,中间隔着几列的,是不是因为M:S,包含了中间的无数列呢?公式应该怎么样修改一下呢?
展开
 我来答
摆渡浮桥
2010-12-09 · TA获得超过3631个赞
知道大有可为答主
回答量:1610
采纳率:100%
帮助的人:2351万
展开全部
而论如何,二楼的回答是很有新意的,赞一个!

为你写个函数,使用起来会比较简洁,而且可以处理非数字字符。
Function Intersect(text1 As String, text2 As String) As String

Dim result As String, shorter As String, longer As String

result = ""

If Len(text1) <= Len(text2) Then
shorter = text1
longer = text2
Else
shorter = text2
longer = text1
End If

Dim i As Integer
For i = 1 To Len(shorter)
Dim searchChar As String

searchChar = Mid(shorter, i, 1)
If InStr(1, longer, searchChar) > 0 Then
If InStr(1, result, searchChar) = 0 Then '重复的字符只输出一次。
result = result & searchChar
End If
End If

Next

Intersect = result
End Function

使用方法:
在T2单元格中输入 = Intersect(M2, S2)
E侠兔7502
2010-12-08 · TA获得超过3161个赞
知道大有可为答主
回答量:3205
采纳率:53%
帮助的人:2418万
展开全部
比如数据在A1、B1,
用数组公式:=IF(OR(ISERR(FIND(0,A1:B1))),"",0)&SUBSTITUTE(SUM(IF(MMULT(--ISNUMBER(FIND(ROW($1:$9),A1:B1)),{1;1})=2,ROW($1:$9))*10^(9-ROW($1:$9))),0,)
复制或输入完后,按CTRL+SHIFT+回车结束。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gaofy
2010-12-08 · TA获得超过308个赞
知道小有建树答主
回答量:516
采纳率:0%
帮助的人:367万
展开全部
太复杂!可以使用嵌套if语句!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
朱荟非
2010-12-08 · TA获得超过1万个赞
知道大有可为答主
回答量:5408
采纳率:81%
帮助的人:2711万
展开全部
二楼高手
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hhh1579
2010-12-09 · TA获得超过344个赞
知道小有建树答主
回答量:211
采纳率:0%
帮助的人:229万
展开全部
不要老想着用EXCEL自带的函数解决问题,我们可以根据自己的需要创建函数。
单击“工具”——“宏”——“VB编辑器”,在VB编辑器中插入模块,将以下代码复制进去,这样我们就创建了一个 jj(x,y) 函数。(交集的拼音首字母)
Function jj(x, y)
Dim a(10), b(10), c(10)
For i = 1 To 10
a(i) = Mid(x, i, 1)
b(i) = Mid(y, i, 1)
c(i) = ""
Next i
For i = 1 To 10
For j = 1 To 10
If a(i) = b(j) Then c(i) = a(i)
Next j
Next i
For i = 1 To 9
For j = i + 1 To 10
If c(i) = c(j) Then c(j) = ""
Next j
tt: Next i
For i = 2 To 10
c(1) = c(1) & c(i)
Next i
jj = c(1)
End Function
关闭VB编辑器,在T2单元格输入: =jj(m2,s2) 将此公式复制下去即可。
希望我的回答对你有所帮助。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bluelaser4dea023
2010-12-09 · TA获得超过1万个赞
知道大有可为答主
回答量:7227
采纳率:47%
帮助的人:4795万
展开全部
在结果单元格输入公式:
=IF(COUNT(FIND(0,M2)*FIND(0,S2)),0,)&SUBSTITUTE(SUMPRODUCT(ISNUMBER(FIND(ROW($1:$9),M2)*FIND(ROW($1:$9),S2))*ROW($1:$9)*10^(9-ROW($1:$9))),0,)
向下填充即可。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式