我有一张类似的表:
ID | Item 1 | Item 2 | Item 3 | Qty 1 | Qty 2 | Qty 3
1 | | X | X | | 3 | 4
2 | X | | X | 2 | | 1
3 | | | X | | | 9
我需要找到一种方法为每个ID为每个项目创建一个新行:
ID | Item | Qty
1 | 2 | 3
1 | 3 | 4
2 | 1 | 2
有没有办法通过公式,原生Excel工具或VBA来实现这一目标?
答案 0 :(得分:2)
使用详细描述here中描述的技术来获得如下所示的表:
删除ColumnC为(Blanks)
或X
的位置。选择ColumnB和HOME>编辑 - 查找&选择,替换...,查找内容:Qty
,全部替换。调整列标签并居中。那么你应该有一个像这样的表:
您可以选择通过右键单击其中一个单元格,表格,转换为范围来转换为Rage。
答案 1 :(得分:1)
您可以使用Microsoft Query指向数据表。选择您的数据,然后在顶部的公式栏左侧的框中键入名称,为其命名范围。
将工作簿保存到某个目录。然后选择它作为数据源:
SELECT `Sheet1$`.ID,
`Sheet1$`.Qty1
FROM `C:\Users\MyName\Desktop\data.xlsx`.`Sheet1$` `Sheet1$`
WHERE (`Sheet1$`.Item1='x')
union
SELECT `Sheet1$`.ID,
`Sheet1$`.Qty2
FROM `C:\Users\MyName\Desktop\data.xlsx`.`Sheet1$` `Sheet1$`
WHERE (`Sheet1$`.Item2='x')
union
SELECT `Sheet1$`.ID,
`Sheet1$`.Qty3
FROM `C:\Users\MyName\Desktop\data.xlsx`.`Sheet1$` `Sheet1$`
WHERE (`Sheet1$`.Item3='x')