在excel中动态转置表

时间:2017-05-24 08:37:52

标签: excel transpose

我需要为以下任务提供一些建议,我有一个包含2列RESPONSIBLE和SERVICE的Excel工作表(参见Attached file的Sheet1)

我需要在另一个Excel工作表上创建矩阵作为附件中的Sheet2。

1 个答案:

答案 0 :(得分:1)

在B2中使用以下数组公式并根据需要拖动/复制:

=IF(AND($A2<>"",B$1<>"")=TRUE,IF(ISNUMBER(MATCH($A2&B$1,Sheet1!$A:$A&Sheet1!$B:$B,0))=TRUE,"x",""),"")

要填充列标题,请在B1中使用以下数组公式并拖动/复制:

=IFERROR(INDEX(Sheet1!$B$2:$B$100,MATCH(0,COUNTIF($A$1:A1,Sheet1!$B$2:$B$100),0)),"")

要填充行标题,请在A2中使用以下数组公式并拖动/复制:

=IFERROR(INDEX(Sheet1!$A$2:$A$100,MATCH(0,COUNTIF($A$1:A1,Sheet1!$A$2:$A$100),0)),"")

使用 ctrl + shift + 输入

输入以上所有公式

我通过增加数据来测试上面的公式,并且减慢了我的excel文件。原因很可能是第一个公式。

如果在sheet1中添加辅助列,则可以在C2中添加它(不是数组公式):

=A2&B2

然后在sheet2,B2中你可以使用(不是数组公式):

=IF(ISNUMBER(MATCH($A2&B$1,Sheet1!$C:$C,0))=TRUE,"x","")

随着工作表中数组公式的数量大幅减少,这将大大提高速度到正常水平。

您只需使用数据透视表即可。输入“Service”作为列标签和值,输入“Responsible”作为行标签。该值应显示服务计数。唯一的区别是,不是“x”,它将显示1.您还必须在更新数据时刷新数据透视表。