为包含值的每个单元格创build一个新行
我有一个类似这样的表格:
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
我需要find一种方法来为每个ID为每个项目创build一个新行:
ID | Item | Qty 1 | 2 | 3 1 | 3 | 4 2 | 1 | 2
有没有办法通过公式,本地Excel工具或VBA来实现这一点?
使用这里详细描述的技术来得到如下的表格:
删除列C (Blanks)
或X
selectColumnB和HOME>编辑 – 查找和select,replace…,find: Qty
,全部replace。 调整列标签并居中。 你应该有一个像这样的表格:
你可以通过右键单击其中一个单元格Table,Convert to Range来select转换为Rage。
您可以使用Microsoft Query来指向您的数据表。 select您的数据,然后通过在顶部的公式栏左边的框中input一个名称给它一个命名的范围。
将工作簿保存到某个目录中。 然后select它作为数据源:
- 点击顶部的数据标签。
- select“从其他来源”button。
- 从菜单中select“从Microsoft Query”。
- select“Excel文件”数据源。
- find并select您保存工作簿的数据文件。
- 如果出现没有find表格的错误,请单击确定,然后select底部的“选项…”button,并确保显示所有types的表格。
- select数据所在的表格或表格,并将所有列移到右侧框,然后单击下一步。
- 再点击filter对话框中的下一步。
- 再次点击sorting对话框中的下一步。
- 在Microsoft Query中select查看数据或编辑查询,然后单击完成。
- 在Microsoft Query中单击查看菜单并select“SQL …”
- input此SQL语句(并更改目录path以匹配您保存文件的位置:
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')
- 点击确定
- select文件菜单,然后“返回数据到Microsoft Excel”。
- select数据的目标单元格,然后单击确定。