EXCEL如何用公式让一个数组和一个区域的数组一一比对,找相同值&到一起放在同一个单元格里?

如{d,f,g}与{e,f,y,g}比对,得出fg结果放在同个单元格里... 如{d,f,g}与{e,f,y,g}比对,得出fg结果放在同个单元格里 展开
 我来答
侯玉川
科技发烧友

2019-09-26 · 教育领域创作者
个人认证用户
侯玉川
采纳数:2041 获赞数:3571

向TA提问 私信TA
展开全部

如果题主要坚持用公式处理,早期的电子表格版本完成起来可能真的很麻烦。因为没有把数组合并成字符串的函数。当然,目前有OFFICE365版本和WPS2019支持的最新函数可以解决你的问题。

早期版本的, 我看到过一个朋友做的公式,用数组+index函数的。能提取大约长度为20的一位数组并合并成一个单元格。公示长度3771个字符。如果再把其他公式嵌套进去,恐怕只能处理更少长度的数组了 。而且数据一多,恐怕很容易宕机。倒不如用VBA做个循环来得更好一些。

现在如果用WPS2019或者OFFICE365版本,你可以使用TEXTJOIN将数组合并。

你现在是两个数组,要一一对应,如果两个都是一维数组,就比较好办。如果是一行一列,直接让两个数组比对,组成一个二维数组,对不上的为空,对上的为本身,就能一一比对,如果都是行或者列,将这个一维数组其中的一个用TRANSPOS函数转置成另一个方向,然后再比对就可以。

比对完成后形成的二维数组,可以通过TEXTJOIN这个强大的函数来将数组合并成字符串,这个函数还有一个参数,可以把各个数组中间设置一个间隔符。建议题主试试。 

如果还有什么不明白的,可以继续追问或者私信。如果需要做具体的公式,建议私信发具体的表过来,方便根据具体情况写公式。  简单的可免费哦。复杂的太耗费精力的,不免费,具体可商量。 本人致力与研究EXCEL公式、函数、数据透视表、SQL查询统计、VBA等功能。也希望我能帮到更多的人。

更多追问追答
追问
如何把具体表格发给你,邮件吗?需要请教,尊重别人的劳动成果是做人准则,酬劳是应该的
追答
私信联系方式
司马刀剑
高粉答主

2019-09-26 · 每个回答都超有意思的
知道顶级答主
回答量:4.6万
采纳率:93%
帮助的人:7531万
展开全部
假设数组在A1:A15,已知数在B1,则在要显示的地方输入
=INDEX(A1:A15,MATCH(SMALL(ABS(B1-A1:A15),1),ABS(B1-A1:A15),0))
然后按ctrl+shift+enter结束
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Ynzsvt
2019-09-26 · TA获得超过6665个赞
知道大有可为答主
回答量:1.5万
采纳率:40%
帮助的人:2685万
展开全部
地主的地亩不够详细。数组会不会含有相同的元素项目?

如{d,f,f,g}与{e,f,f,f,y,g}比对,会出现这种重复的数组元素吗,如果会,结果希望是咋样的。
追问
数组里的元素不重复
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
假计梁琴么释c5
2019-09-25 · TA获得超过751个赞
知道小有建树答主
回答量:1172
采纳率:29%
帮助的人:451万
展开全部
建立第三个数组,把遍历后相同内容的存入。
更多追问追答
追问
比对提取第一步都已经卡壳了,麻烦指点,不胜感激!
追答
a和 b列比对到c列
dim a(),b()
a=range(?):b=range(?)
for a=1 to ubound(a)
for b=1 to ubound(b)
if a(a)=b(b) then c=c+1:cells(c,3)=a(a)
next
next
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式