EXCEL中怎么实现每隔3行6列进行批量转置?求大佬指点,谢谢!

发布网友 发布时间:2022-04-23 04:16

我来回答

5个回答

热心网友 时间:2022-05-29 12:02

原数据:

数据转置之后的数据:

公式:

=INDIRECT(ADDRESS(MATCH($A18,$A$1:$A$16,0)+COLUMN()-2,ROW()-14-MATCH($A18,$A$18:$A$1600,0),1,1))

要求:

公式设置是在同一个Sheet内的数据;

组名转置前后数据最好放在在A列;

组名,A、B、C各列,中间不能插列

公式说明:

=INDIRECT(ADDRESS(Row,Col,1,1)) 对特定的地址取值,特定行、特定列

=MATCH($A18,$A$1:$A$16,0)。在A1:A16中,找与A18值相匹配的单元格,返回匹配值的位置(此处是取行号)

公式中使用了2个Match公式,取值范围不同,目的是要知道当前单元格的位置信息。

注意:

公式中带“$”,为数据锁定,便于行向、纵向拉公式复制

第二组、第四组、第五组,数据超过为4个或5个,先把组名在A列中设置好,可以每组都设置5行。如:第一组有5行为第一组。这样,第一组的第4、5个数显示为“0”。

热心网友 时间:2022-05-29 12:02

这种转换,power query是最合适的。动动鼠标点几下就行了。

而且一劳永逸,数据扩展变化了,会自动变化。

操作方法见动图。

由于数据不规范,要先“逆透视”,然后“透视”即可。

你的数据没有表头,为了便于描述,我增加了列1-7:

1,随便点一个单元格,数据-来自表格区域-自动启动power query

2,选中列3-7,转换-逆透视

3,选中列2,透视:对象选”值“,高级选项选”不要聚合“

4,删除多余的列

5,主页-关闭并上载-选择一个目的地


使用公式也可以。


1,提前输入各组5行:

选中B18:D22,输入以下公式,并按Ctrl+Shift+Enter确定,然后下拉至第42行。

=TRANSPOSE(OFFSET(C$1,3*MID(A18,2,1)-3,0,3,5))

组号无需手动输入,A18输入以下公式下拉:

=OFFSET(A$1,3*INT((ROW(A1)-1)/5),0)


2,提前按各组列数准确输入:

选中G18:I18,输入以下公式,并按Ctrl+Shift+Enter

=TRANSPOSE(OFFSET($C$1,3*MID(F18,2,1)-3,COUNTIF(F$18:F18,F18)-1,3,1))

组号无需手动输入,F18输入以下公式下拉:

=IF(F17="",$A$1,IF(COUNTIF(F$17:F17,F17)<(SUMPRODUCT(($C$1:$G$15<>"")*($A$1:$A$15=F17))/3),F17,TEXT(1+MID(F17,2,1),"第0组")))

热心网友 时间:2022-05-29 12:02

Excel怎样处理一列数据根据标题转成四列数据表

热心网友 时间:2022-05-29 12:03

公式复杂,手工费时容易出错,最好用代码,运行效果如下:

实效:可选择数据用作行、列字段信息,根据信息提取数据,实现转置功能,注意数据须顺序记录,否则需要将部分代码删除或进行注释(在代码前加英文半角单引号')。

热心网友 时间:2022-05-29 12:04

几十行建议手工,上千行就用代码。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com