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

如{d,f,g}与{e,f,y,g}比对,得出fg结果放在同个单元格里

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

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

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

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

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

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

追问

如何把具体表格发给你,邮件吗?需要请教,尊重别人的劳动成果是做人准则,酬劳是应该的

追答

私信联系方式

或者[email protected]

我的名字全拼加点cn

追问

邮件被退回

邮件被退回

邮件被退回

邮件被退回

追答

邮件地址写错了,抱歉,手机打字不好打。
[email protected]

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-09-26
假设数组在A1:A15,已知数在B1,则在要显示的地方输入
=INDEX(A1:A15,MATCH(SMALL(ABS(B1-A1:A15),1),ABS(B1-A1:A15),0))
然后按ctrl+shift+enter结束
第2个回答  2019-09-26
地主的地亩不够详细。数组会不会含有相同的元素项目?

如{d,f,f,g}与{e,f,f,f,y,g}比对,会出现这种重复的数组元素吗,如果会,结果希望是咋样的。追问

数组里的元素不重复

第3个回答  2019-09-25
建立第三个数组,把遍历后相同内容的存入。追问

比对提取第一步都已经卡壳了,麻烦指点,不胜感激!

追答

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

改 then cells(1,3)=cells(1,3) & a(a)
这样相同内容只放在第三列第一行的单元格里。

本回答被网友采纳