发布网友 发布时间:2022-04-23 03:42
共3个回答
热心网友 时间:2023-10-13 16:19
1楼大哥的公式基本能解决问题了,就是一时手快打漏了一个工作表定义 sheet1!热心网友 时间:2023-10-13 16:19
就问题本身来说,可以不用公式解决。使用excel的筛选功能可以解决。热心网友 时间:2023-10-13 16:20
SHEET2的A2中输入:追答IF(SHEET1!$A$3:$G$3"",COLUMN($A:$G),4^8)
A3:G3单元格不为空时,返回COLUMN($A:$G),即1、2、3、4、5、6、7,否则返回65536,
SMALL(IF(SHEET1!$A$3:$G$3"",COLUMN($A:$G),4^8),COLUMN(A1))
的作用是对返回值进行由小到大排序,如你给出的例子,排出来的结果是:1,4,6,65536,65536,65536
INDEX(2:2,SMALL(IF(SHEET1!$A$3:$G$3"",COLUMN($A:$G),4^8),COLUMN(A1)))
作用是返回由上面的这些列号对应是第二行中的值,即A1、A4、A6,由于第65536列对就的值为空,所以再往后填充时会返回空单元格。
这样就达到了你的要求。
另外,excel2003只有256列,上面公式中取到65536,可能会出现错误,你可以把公式中的4^8改为256就可以了。公式输入后按Ctrl+Shift+回车键结束,向右拉。
第二个公式不用解释了吧?