咫尺千里 发表于 2021-12-20 23:47:00

一行多个非空值取值

请教各位,想在每行特定范围内,取值此范围内多个非空的数值,达成效果如绿色图层所示取值,不用数组仅用函数如何实现?

漫步冬季 发表于 2021-12-30 15:14:09

K2=IFERROR(INDEX($C2:$I2,,SMALL(IF($C2:$I2<>"",1,10)*(COLUMN($A1:$G1)),COLUMN(A1))),"")
是数组公式

涛涛鸭梨好鬼大 发表于 2022-1-12 01:54:22

K2=IFERROR(INDEX($C2:$I2,SMALL(IF($C2:$I2<>"",COLUMN($A:$G),9^9),COLUMN(A1))),""),右拉下拉

劳动人 发表于 2022-1-21 05:05:51

多谢shss12和为食猫朋友,能否再延伸请教一下,如何根据无关数据1这列的内容到R列里查找,并且根据非空值所对应的取值范围到S列里查找,双重判定返回T列的值,想达成效果如黄色图层,烦请再查收下新上传附件,谢谢您们了!

美之然植物养发专卖 发表于 2022-3-1 19:35:30

这样么?
=INDEX($T$2:$T$71,MATCH($A2&INDEX($C$1:$I$1,MATCH(INDEX($A2:$I2,SMALL(IF($C2:$I2<>"",COLUMN($C:$I),99999),COLUMN(A1))),$C2:$I2,0)),$R$2:$R$71&$S$2:$S$71,0))

董柱 发表于 2022-3-10 06:03:22

多谢roben110朋友!N列非空值数据1用您的公式完美运行是我想要的效果,还想问问O列非空值数据2和P列非空值数据3该如何调整公式也能使用,再次感谢!

老诸 发表于 2022-3-10 09:34:02

不用调整,直接右拉下拉就好了,你EXCEL如果不是2003的话,可以再多套个IFERROR
=IFERROR(INDEX($T$2:$T$71,MATCH($A2&INDEX($C$1:$I$1,MATCH(INDEX($A2:$I2,SMALL(IF($C2:$I2<>"",COLUMN($C$2:$I$2),99999),COLUMN(A1))),$C2:$I2,0)),$R$2:$R$71&$S$2:$S$71,0)),"")

情歌哼着哼着就跑调了 发表于 2022-3-21 20:48:07

感激感激!
用开始您讲解的公式右拉下拉的话,碰到空值就会显示#REF!,如何可以让空值不显示?试过EXCEL2016和WPS2016都会显示#REF!
将文件格式改为xlsx用后来多套个IFERROR的公式,可以完美解决空值不显示#REF!
由于我EXCEL文档是作为数据源链接到其它软件使用的,那个软件由于比较老调用xls格式可以完美运行,调用xlsx格式是通过安装了Microsoft Access database engine 2010后才实现的,但有时候可能会报错。如果可以的话可否请帮忙再次优化下前面的公式?如果不好实现也实在非常感谢您,您给出的2种公式缩减了我绝大部分做表工作量,只需要简单删除下#REF!数值即可
页: [1]
查看完整版本: 一行多个非空值取值