繁体   English   中英

为包含值的每个单元格创建一个新行

[英]Create a new row for each cell containing a value

我有一个类似于这样的表:

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来实现这一目标?

使用此处详细描述的技术来获得如下所示的表:

SO33043100第一个例子

删除ColumnC为(Blanks)X 选择ColumnB和HOME>编辑 - 查找和选择,替换...,查找内容: Qty ,全部替换。 调整列标签并居中。 你应该有一个像这样的表:

SO33043100第二个例子

您可以选择通过右键单击其中一个单元格,表格,转换为范围来转换为Rage。

您可以使用Microsoft Query指向您的数据表。 选择您的数据,然后通过在顶部的公式栏左侧的框中键入名称为其指定范围。

将工作簿保存到某个目录。 然后选择它作为数据源:

  • 单击顶部的数据选项卡。
  • 选择“从其他来源”按钮。
  • 从菜单中选择“来自Microsoft Query”。
  • 选择“Excel文件”数据源。
  • 查找并选择保存工作簿的数据文件。
  • 如果您收到没有找到表的错误,请单击“确定”,然后选择底部的“选项...”按钮,并确保选中以显示所有类型的表。
  • 选择数据所在的表格或工作表,将所有列移到右侧框,然后单击“下一步”。
  • 再次单击过滤器对话框上的下一步。
  • 再次单击排序对话框上的下一步。
  • 在Microsoft Query中选择查看数据或编辑查询,然后单击完成。
  • 单击Microsoft Query中的视图菜单,然后选择“SQL ...”
  • 输入此SQL语句(并更改目录路径以匹配保存文件的位置:


    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')

  • 单击确定
  • 选择文件菜单,然后选择“将数据返回到Microsoft Excel”。
  • 选择数据的目标单元格,然后单击“确定”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM