Excel难题:下面abcd行右边有很多个数字,我想在上面1234行返回下面数字所在的abcd行里的abcd?

比如说6,这个重复值, 就在上面1234列的6右边单元格返回【a,c,e,h】

如果是16版及以上版本可以用textjoin,下面这种方法是针对非16及以上的版本

C2单元格用数组公式,并且应用扩展到K11单元格

=IF(OR(OFFSET($B$16:$G$16,SUM(COLUMN()-3),0,1,6)=OFFSET($A$1,SUM(ROW()-1),0,1,1)),OFFSET($A$16,SUM(COLUMN()-3),0,1,1),"")

B2单元格使用公式,下拉填充到B11单元格。

=C2&D2&E2&F2&G2&H2&I2&J2&K2


追问

老哥你的column为什么要-3和row为什么要-1?因为我的要工作的具体表格和案例行列位置不一样

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-04-02
a,b,h,i?
不应该是aceh?追问

a,c,e,h,老哥,求指教!!1

追答

如图

C3输入

=TEXTJOIN(",",,IF(MMULT(N($D$15:$I$23=$A3),ROW($1:$6)^0),$C$15:$C$23,""))

部分16版及以上版本才能用这个函数,textjoin合并在一个单元格,没有这个函数只能显示在多个单元格

追问

老哥佩服,能解释一下这段函数吗。。。悬赏都给你了。。。

追答

回家再说,下班了。

追问

老哥16用不了textjoin,能不合并吗?或者16怎么才能用textjoin?我在网上找了个加载宏也用不了

追答

16版本有很多,极少版本有这个函数,

函数与加载宏没关系,宏是宏,函数是函数,

宏可以说是代码,可以认为是编程

没这个函数,可以这样放在多个单元格,C3右拉下拉

=IFERROR(INDEX($C:$C,SMALL(IF(MMULT(N($D$15:$I$23=$A3),ROW($1:$6)),ROW($C$15:$C$23)),COLUMN(A1))),"")

关键,数组公式,三键输入,出现大括号代表输入正确


然后手动&符号连接,手动“”&“”符号可考虑concatenate,只是没“”,“”隔开了

代码能实现,懒得写,写了估计你也不会用,还要调整宏安全性,没涉及过VBA的不建议。

追问

老哥能不能解释一下$C:$C和$1:$6代表什么因为我的要工作的表格和案例按行列位置不一样

追答

MMULT 这个函数 要求第一个数组的列要和第二个数组的行对应,具体百度
ROW($1:$6)目的只是为了生成一个6行的数组,本身与行没关系
$C:$C,这个比较简单,就是用index在C列取值
综合来说,这公式并不简单

非要理解的话,太难了,得一定函数基础才行,实在不行,文件发给我,给你改。

本回答被提问者采纳
第2个回答  2021-04-03
编写个程序,就可以,循环,然后将结果合并到一个单元格
第3个回答  2021-04-02
不难不难,用代码就好了。追问

怎么说

追答

用代码一个个单元格的循环查找,然后合并。

追问

具体公式、函数呢

相似回答