【问题标题】:transpose table dynamically in excel在excel中动态转置表格
【发布时间】:2017-05-24 08:37:52
【问题描述】:

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

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

【问题讨论】:

  • 是否可以在 sheet1 中使用辅助列?
  • 您想要一个 vba 解决方案还是只需要 excel 公式?

标签: excel transpose


【解决方案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 + enter

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

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

=A2&B2

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

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

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

或者

您可以简单地使用数据透视表。输入“服务”作为列标签和值,输入“责任”作为行标签。该值应显示服务计数。唯一的区别是它将显示 1 而不是“x”。您还必须在更新数据时刷新数据透视表。

【讨论】:

  • 感谢您的帮助 Nitesh,我忘记了另一个重要要求,如果我在 Sheet1 中添加一个带有新类别的新行,例如 James with NETWORK,新类别应该自动添加到表 2 中的列,是否有可能完成此任务?非常感谢您的帮助 Fabrizio
  • 使用我回答中的第二个数组公式。 “要填充列标题,请在 B1 中使用以下数组公式...”
猜你喜欢
  • 1970-01-01
  • 2022-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-15
  • 1970-01-01
  • 2021-09-01
相关资源
最近更新 更多