分享

Excel公式:将矩形数据转换成单列数据

 hercules028 2023-04-04 发布于四川

excelperfect

标签:Excel公式

有时候,有一块矩形区域的数据,我们想将其转换成单列数据,以便于进一步处理,如何使用公式实现呢?

情形1:逐行转换成单列

如下图1所示,在单元格区域A1:D7中有一系列数据,要将其转换成单列数据,规则是自左自右自上而下逐行转换,即将第1行的ABCD转换为列数据,然后转换第2行的EFGH,依此类推。

图片

1

在单元格F1中输入公式:

=IFERROR(REPT(INDEX($A$1:$D$7,INT((ROW(A1)-1)/COLUMNS($A$1:$D$7))+1,MOD(ROW(A1)-1,COLUMNS($A$1:$D$7))+1),1),'')

然后下拉复制单元格公式。

上面的公式稍作变化,也能达到相同的效果:

=INDEX($A$1:$D$7,1+INT((ROW(A1)-1)/COLUMNS($A$1:$D$7)),MOD(ROW(A1)-1+COLUMNS($A$1:$D$7),COLUMNS($A$1:$D$7))+1)

也可以使用下面的公式:

=IF(OFFSET($A$1,ROUNDUP(ROWS($1:1)/COLUMNS($A$1:$D$100),0)-1,

MOD(ROWS($1:1)-1,COLUMNS($A$1:$D$100)))=0,'',OFFSET($A$1,ROUNDUP(ROWS($1:1)

/COLUMNS($A$1:$D$100),0)-1,MOD(ROWS($1:1)-1,COLUMNS($A$1:$D$100))))

情形2:逐列转换成单列

如果我们需要逐列转换,那该如何?即先将第1列的数据转换为列数据,再将第2列的数据添加到刚才列数据后面,如下图2所示。

图片

2

可以使用下面的公式:

=IF(OFFSET($A$1,MOD(ROWS($1:1)-1,COUNTA($A:$A)),ROUNDUP(ROWS($1:1)

/COUNTA($A:$A),0)-1)=0,'',OFFSET($A$1,MOD(ROWS($1:1)-1,COUNTA($A:$A)),

ROUNDUP(ROWS($1:1)/COUNTA($A:$A),0)-1))

很有意思的变换,有兴趣的朋友可以多琢磨,写出自己的公式来,提升编写公式解决问题的能力。

欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多