楼主 0Mouse |
Q:用函数与公式如何依次提取某行数据中的非空单元格值呢? A:可以采用数组公式,详见以下示例文件及其解法。
【示例文件】 截图:
要求:采用函数与公式将A:M中的非空单元格值按从左到右先后出现顺序依次填入同行R、S、T列单元格内。
【解法】 方法1:在R1内输入
- =IF(ISERROR(INDEX($A1:$M1,,SMALL(IF($A1:$M1<>"",COLUMN($A:$M)),COLUMN()-17))),"",INDEX($A1:$M1,,SMALL(IF($A1:$M1<>"",COLUMN($A:$M)),COLUMN()-17)))
按Ctrl+Shift+Enter结束,右拉,下拉。
方法2:在R1内输入
- =IF(ISERROR(INDEX($A1:$M1,SMALL(COLUMN($A:$M)*($A1:$M1<>""),COLUMN()+COUNTBLANK($A1:$M1)-17))),"",INDEX($A1:$M1,SMALL(COLUMN($A:$M)*($A1:$M1<>""),COLUMN()+COUNTBLANK($A1:$M1)-17)))
按Ctrl+Shift+Enter结束,右拉,下拉。
如果只是提取首个出现的非空单元格值,则函数与公式解法如下: 在R1单元格中输入以下任意一个公式: 公式1:
- =INDEX(A1:M1,,MIN(IF(A1:M1<>"",COLUMN(A:M))))
公式2:
- =INDEX(A1:M1,,SMALL(IF(A1:M1<>"",COLUMN(A:M)),1))
公式3:
- =INDEX(A1:M1,SMALL(COLUMN(A:M)*(A1:M1<>""),COLUMN()+COUNTBLANK(A1:M1)-17))
公式4:
- =OFFSET(A1,,SMALL(COLUMN(A:M)*(A1:M1<>""),COLUMN()+COUNTBLANK(A1:M1)-17)-1)
公式5:
- =INDEX(A1:M1,,MATCH(,0/(A1:M1<>""),))
公式6:
- =INDEX(A1:M1,,MATCH(TRUE,LEN(A1:M1)<>0,0))
按Ctrl+Shift+Enter结束,下拉。
示例文档(包括解法): 提取非空单元格值.rar |