Excel“规范化”数据(多个重复列到3列)

时间:2013-12-04 22:00:36

标签: excel pivot-table

我不太确定这里的术语是什么......

我的数据列包含一个人ID,以及126个重复的date1,amount1,date2,amount2,date3,amount3等列。

日期或金额没有逻辑,除了date2和amount2只包含数据,如果date1和amount1有数据,依此类推。

我需要三列,personID,Date和Amount。

2 个答案:

答案 0 :(得分:0)

(对于一次性场景,这可能有点过头了。)

我建议您使用ADO连接到Excel文件(请参阅here)。然后,您可以对Excel文件发出以下SQL语句:

SELECT PersonID, Date1, Amount1
FROM [WorksheetName$]

UNION ALL SELECT PersonID, Date2, Amount2
FROM [WorksheetName$]
WHERE Date2 IS NOT NULL

您可能希望使用某些代码生成语句,而不是手动编写60多次。

然后,您可以SELECT INTO新的工作表。请参阅here

答案 1 :(得分:0)

首先复制整个文件,只是为了确保备份。

然后在当前列A

之前插入126列

在新的A1中写下公式=IF(DW1="",C1,DW1)

在新B2中写下公式=IF(DX1="",D1,DX1)

复制两个单元并向右粘贴直到DV1(Ctrl-C然后按Ctrl-Shift-RightArrow然后按Ctrl-V)

下一个复制A1:DV1并根据需要向下粘贴。复制列A:B并粘贴到新工作表中作为值,等等。