EXCEL中,根据一列中特定内容格子,将这列切成若干列的方案?

excel

1个回答

写回答

Adens

2025-11-03 00:35

+ 关注

提供一种方案供参考:假设每个分组最多20行数据(这个根据实际调整,公式不影响),从C1框选到C20,公式编辑栏输入下面这一大串,按Ctrl+Shift+Enter组合键输入为数组公式,再整体往右拉填充(有几个分组拉几列,可以多拉几列):=IFERROR(IF(AND(COLUMN(A:A)=COUNTIF(INDIRECT($A$1:$A$&COUNTA($A:$A)),完),IF(COLUMN(A:A)-1=0,1,IF(COLUMN(A:A)-1COUNTIF(INDIRECT($A$1:$A$&COUNTA($A:$A)),完),COUNTA($A:$A),SMALL(IF(INDIRECT($A$1:$A$&COUNTA($A:$A))=完,ROW(INDIRECT($A$1:$A$&COUNTA($A:$A))),2^16),COLUMN(A:A)-1)+1))IF(COLUMN(A:A)-1=COUNTIF(INDIRECT($A$1:$A$&COUNTA($A:$A)),完),COUNTA($A:$A),SMALL(IF(INDIRECT($A$1:$A$&COUNTA($A:$A))=完,ROW(INDIRECT($A$1:$A$&COUNTA($A:$A))),2^16),COLUMN(A:A)))),INDEX($A:$A,ROW(INDIRECT(A&IF(COLUMN(A:A)-1=0,1,IF(COLUMN(A:A)-1COUNTIF(INDIRECT($A$1:$A$&COUNTA($A:$A)),完),COUNTA($A:$A),SMALL(IF(INDIRECT($A$1:$A$&COUNTA($A:$A))=完,ROW(INDIRECT($A$1:$A$&COUNTA($A:$A))),2^16),COLUMN(A:A)-1)+1))&:A&IF(COLUMN(A:A)-1=COUNTIF(INDIRECT($A$1:$A$&COUNTA($A:$A)),完),COUNTA($A:$A),SMALL(IF(INDIRECT($A$1:$A$&COUNTA($A:$A))=完,ROW(INDIRECT($A$1:$A$&COUNTA($A:$A))),2^16),COLUMN(A:A)))))),),)

示例效果以上原则上支持A列一整列数据,不过实际应用需要注意如果数据特别多,分组特别多或者每个分组的数据行数特别多,导致数组公式量很大的话,在系统性能不足底情况下,表格可能反应较慢。

举报有用(0分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号