求两类Excel公式:提取隔列数据、返回工作表最后填充行号
两类Excel实用公式解决方案
一、提取任意数量列中的隔列数据
针对最少4列的数据集,可通过以下公式提取奇数列(第1、3、5...列)或偶数列(第2、4、6...列)数据,支持同工作表或跨工作表输出:
1. 同工作表提取
- 提取奇数列数据:
=INDEX($A:$Z,ROW(),SEQUENCE(1,ROUNDUP(COLUMNS($A:$Z)/2,0),1,2))
说明:$A:$Z为数据源列范围,可按需调整;SEQUENCE生成步长为2的列序号(从1开始),生成数量为总列数向上取半,确保覆盖所有奇数列。 - 提取偶数列数据:
=INDEX($A:$Z,ROW(),SEQUENCE(1,ROUNDDOWN(COLUMNS($A:$Z)/2,0),2,2))
说明:仅需将SEQUENCE的起始值改为2,生成数量为总列数向下取半,覆盖所有偶数列。
2. 跨工作表提取
若需从Sheet1提取数据到Sheet2:
- 提取奇数列:
=INDEX(Sheet1!$A:$Z,ROW(),SEQUENCE(1,ROUNDUP(COLUMNS(Sheet1!$A:$Z)/2,0),1,2)) - 提取偶数列:
=INDEX(Sheet1!$A:$Z,ROW(),SEQUENCE(1,ROUNDDOWN(COLUMNS(Sheet1!$A:$Z)/2,0),2,2))
说明:只需将数据源范围指定为目标工作表的列区域即可。
二、获取任意区域最后填充单元格的行号
若要返回工作表内任意区域(不限于单行)最后有内容的单元格行号,使用以下数组公式:=MAX(IF(NOT(ISBLANK(数据源区域)),ROW(数据源区域),0))
注意事项
- 旧版Excel需按
Ctrl+Shift+Enter触发数组计算;新版Excel直接回车即可生效。 - 示例:若要查询
A:C区域最后填充的行号,公式为=MAX(IF(NOT(ISBLANK(A:C)),ROW(A:C),0))。
内容的提问来源于stack exchange,提问作者AdamW
相关产品推荐
相关产品推荐

