【问题标题】:Unpivot table with two rows as column headers以两行作为列标题的反透视表
【发布时间】:2020-12-20 18:02:15
【问题描述】:

我知道如何使用 power query 来取消透视 Excel 表格,其中一行作为列标题。但最近我需要将 2 行作为列标题进行反透视。例如,如果我们有这个:

    b1  b1  b2  b2  b2
    c1  c2  c1  c2  c3
a1   1   4   7   3   4
a2   5   8   9   8   6
a3   3   6   9   6   2

a=行标题,b & c=列标题

我们想要这个:

a1  b1  c1  1
a1  b1  c2  4
a1  b2  c1  7
a1  b2  c2  3
a1  b2  c3  4
a2  b1  c1  5
a2  b1  c2  8
a2  b2  c1  9
a2  b2  c2  8
a2  b2  c3  6
a3  b1  c1  3
etc.            

【问题讨论】:

  • 到目前为止你尝试过什么?为什么它不起作用?您想要什么解决方案,SQL、Access、Excel 或 Power Query?删除其他人的标签,然后将您想要解决方案的环境留在那里。另外,请花时间以可消耗的格式(不是图像)发布数据。表格格式的text 可能会正常工作,如果您实际上正在寻找 SQL Server 解决方案,则可以使用 DDL 和 DML 语句。
  • 如果我只有一个列标题(b 或 c),那么我可以使用 power query 并且很容易取消透视。我不介意从上面提到的技术中选择任何技术
  • 现在我们只需要知道您想要解决方案的语言。
  • 我不介意从上面提到的技术中选择任何技术
  • 这对我们没有帮助,@non

标签: sql-server ms-access-2010 excel-2010 powerquery unpivot


【解决方案1】:

在 Power Query 中,您可以这样做

  1. 转置表格并提升标题以获得:
_   _1  a1  a2  a3
b1  c1  1   5   3
b1  c2  4   8   6
b2  c1  7   9   9
b2  c2  3   8   6
b2  c3  4   6   2
  1. 然后您可以取消旋转a 列。
    _1  Atr Value
b1  c1  a1  1
b1  c1  a2  5
b1  c1  a3  3
b1  c2  a1  4
b1  c2  a2  8
b1  c2  a3  6
b2  c1  a1  7
b2  c1  a2  9
b2  c1  a3  9
b2  c2  a1  3
b2  c2  a2  8
b2  c2  a3  6
b2  c3  a1  4
b2  c3  a2  6
b2  c3  a3  2
  1. 根据需要重新排列、排序和重命名列。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多