将行值显示为按特定列分组的列

时间:2014-04-12 09:02:22

标签: sql excel

我在MS-Excel中有一组数据,如下所示 -

unit    installment Amount  date
u1      m1          1500    11-Jan-14
u1      m2          1000    15-Apr-14
u1      m3          2500    17-Sep-14
u2      m1          2400    12-Feb-14
u2      m2          1800    14-Jun-14
u3      m1          8000    11-Jan-14
u3      m2          1600    15-Apr-14
u3      m3          4500    17-Sep-14

我需要以下列格式在MS-Excel中输出 -

Unit      m1    Date        m2     Date        m3   Date    
u1        1500  11-Jan-14   1000   15-Apr-14   2500 17-Sep-14       
u2        2400  12-Feb-14   1800   14-Jun-14                
u3        8000  11-Jan-14   1600   15-Apr-14   4500 17-Sep-14   

这是我在MS-excel版本2010中所需要的东西。我不确定这是否在技术上是可行的,我已经搜索了一个可能的解决方案,但到处都是我最终进入转置。但是如果你注意到,这实际上不是转置。

注意: - 分期付款组(m1,m2,m3)是可变的。但是,可以假设所有唯一集都将显示为列标题。如果任何单位没有里程碑,则它将为空白(例如: - 对于u2以上 - m3为空白)。

此外,如果使用SQL可以实现此解决方案,即使这样,我也可以通过在excel中导出sql结果来解决此问题。如果在SQL中可以使用该解决方案,那么请将上述输入数据作为源表并输出数据作为结果。

1 个答案:

答案 0 :(得分:1)

假设没有重复的对Unit / Installment,可以使用Pivot Table在几次点击中完成此转换(如果有重复项,只有agregate值(例如max })显示AmountDate。以下是详细说明。

<强>步骤1。

选择您的数据,转到 INSERT-->PivotTable 并创建新的数据透视表。

enter image description here

<强>步骤2。

拖动列名称(如下图所示):

  • unitROWS区域。
  • installmentCOLUMNS区域。
  • AmountVALUES区域。
  • dateVALUES区域。

enter image description here

<强>步骤3。

鼠标左键单击Amount区域的VALUES字段(可以命名为Sum of Amount或类似名称),然后点击 Value Filed Settings... < / p>

enter image description here

<强>步骤4。

将计算类型更改为Max并将名称更改为Amount_(我们无法使用Amount名称,因为我们已将其包含在初始数据中,这就是为什么我已将下划线_添加到名称 - 您可以将其更改为,例如,空格。)

enter image description here

<强>步骤5。

鼠标左键单击Date区域的VALUES字段(可以命名为Count of Date或类似名称),然后点击 Value Filed Settings... < / p>

enter image description here

<强>步骤6。

将计算类型更改为Max并将名称更改为Date_(我们无法使用Date名称,因为我们已将其包含在初始数据中,这就是为什么我已将下划线_添加到名称中 - 您可以将其更改为空格。) 同样对于日期字段,我们应该更改数字格式(因为它可以显示为数字而不是日期)。因此,请点击 Number Format 按钮。

enter image description here

<强>步骤7。

选择所需的日期格式。

enter image description here

<强>步骤8。

如果您的表具有“总列数/行数”,则可以将其禁用,如下图所示。 使用数据透视表上的有效单元格转到 Design--> Grand Totals 并选择 Off for Rows and Columns

enter image description here

<强>结果。

现在你的桌子已经可以使用了。如果您不想像数据透视表一样使用它,只需将其内容复制到其他地方即可。

enter image description here