在Excel中dynamic地转换表

我需要一些build议,以下任务,我有一个Excel工作表2列RESPONSIBLE和服务(见Sheet1的附件 )

我需要在另一个Excel工作表上创build附加文件中的Sheet2matrix。

在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)),"") 

input所有上述公式与Ctrl + Shift + Enter

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

如果你在sheet1中添加一个辅助列,那么你可以在C2中添加(不是数组公式):

 =A2&B2 

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

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

这将大大增加到正常水平的速度,因为在数据表中的数组公式的数量大幅减less。

要么

您可以简单地使用数据透视表。 input“Service”作为列标签和值,“Responsible”作为行标签。 值应显示服务计数。 唯一的区别将是,而不是“x”它将显示1.您将不得不刷新数据透视表更新数据。