在Excel中如何从单个数据行创建多个行

时间:2010-01-22 12:57:46

标签: sql excel

我有一个execl数据表,数据看起来像这样

id  desc        part no 1      Qty 1   part no 2   Qty 2   part no 3    Qty 3   
1   PartsName   382A012-3-0 3       382A023-3   3       382A012-25   3      

需要它看起来像这样

id  desc           part no          Qty
1    PartsName     382A012-3-0       3
1    PartsName     382A023-3/42-0    3
1    PartsName     382A012-25/86-0   3

这是一个SQL表,因此我可以在SQL中实现它,如果这样可以更容易

有人建议如何最好地对此进行排序吗?

3 个答案:

答案 0 :(得分:2)

只需在SQL

中创建UNION即可
SELECT id, desc, partNo, qty FROM parts 
UNION SELECT id, desc, partNo2 as partNo, qty2 as qty FROM parts 
UNION SELECT id, desc, partNo3 as partNo, qty3 as qty FROM parts 
ORDER BY id

答案 1 :(得分:1)

如果您没有使用SQL的选项并且需要使用Excel。您可以使用TRANSPOSE功能。它是一个数组类型函数,因此您需要使用{}。如果你之前没有使用它,我建议先阅读帮助。但是我不认为你可以使用转置来完全按照你的描述来获得它。 id和desc列必须单独处理。

答案 2 :(得分:0)

您需要在新工作表中添加下一个公式:

column A=MOD(ROW()+1,3)

它就像一个骨架:)

第一行是标题

column B
=IF($A2=0,OFFSET(Sheet1!$A$1,COUNTIF($A$2:$A2,0),COLUMN()-2),B1)

autofil col C with it

column D
=OFFSET(Sheet1!$A$1,COUNTIF($A$2:$A2,0),COLUMN()+CHOOSE($A2+1,-2,0,2))

autofil col E with it

还有一个 - 你的数据表是“sheet1”