查询以根据列的值删除行
Query to remove rows based on value of a column
我有一个文件,其数据如屏幕截图所示:
需要构建一个查询,该查询将删除具有相同搜索引用的所有行,前提是至少有一行具有非零值。从特定的屏幕截图中,所有突出显示的行都应删除,因为至少有一个条目 Order_Placed=1.
有没有人知道是否同样可行?
已应用解决方法过滤掉 Order_Placed=1 的行,然后 vlookup 整个 table,但想要像解决方案
这样的查询
预先感谢您的协助!
我会建议您使用 VBA 来实现您的目标。通过使用我在下面编写的代码,每次打开此 excel 时,您要删除的行将被删除。我查看了您所附的照片,只有当您将 table 放入 A1 单元格时,我的代码才会起作用。否则代码可能无法工作:)
我将解释如何将我的代码添加到您的 excel。如果你知道使用 VBA 你可以跳过这部分:
在“开发人员”选项卡中,单击“Visual Basic”。然后,依次单击这些:插入、模块。然后你应该粘贴下面的代码。
我希望它有效,如果您遇到任何问题,我们可以再次联系。 (不要忘记将此文件保存为启用宏的“.xlsm”格式!)
注意:如果您查看代码,我在 三个 处写了“16”。您应该根据您的总行数修改此数字。我使用 16 来保护我的计算机免受额外的 运行 问题:)
祝你有愉快的一天。
Sub Auto_Open()
For i = 2 To 16
If Cells(i, 3).Value = 1 Then
For j = 2 To 16
If Cells(j, 1).Value = Cells(i, 1).Value Then
Rows(j).Interior.Color = vbRed
End If
Next
End If
Next
For i = 2 To 16
Rows(i).Select
If Rows(i).Interior.Color = vbRed Then
Selection.Delete
i = i - 1
End If
Next
End Sub
Power Query 解决方案
让我们像您一样获取示例数据
- select 你的数据
- 数据 选项卡单击
get & transform
然后 from table
- 电源查询window将被打开
- 通过
group by
创建 2 个新列说 dat
和 dummy
- 展开
dat
得到这样的
- 关闭并将数据加载回 excel
现在您可以轻松地通过虚拟列过滤掉数据。
我有一个文件,其数据如屏幕截图所示:
需要构建一个查询,该查询将删除具有相同搜索引用的所有行,前提是至少有一行具有非零值。从特定的屏幕截图中,所有突出显示的行都应删除,因为至少有一个条目 Order_Placed=1.
有没有人知道是否同样可行?
已应用解决方法过滤掉 Order_Placed=1 的行,然后 vlookup 整个 table,但想要像解决方案
这样的查询预先感谢您的协助!
我会建议您使用 VBA 来实现您的目标。通过使用我在下面编写的代码,每次打开此 excel 时,您要删除的行将被删除。我查看了您所附的照片,只有当您将 table 放入 A1 单元格时,我的代码才会起作用。否则代码可能无法工作:)
我将解释如何将我的代码添加到您的 excel。如果你知道使用 VBA 你可以跳过这部分:
在“开发人员”选项卡中,单击“Visual Basic”。然后,依次单击这些:插入、模块。然后你应该粘贴下面的代码。
我希望它有效,如果您遇到任何问题,我们可以再次联系。 (不要忘记将此文件保存为启用宏的“.xlsm”格式!)
注意:如果您查看代码,我在 三个 处写了“16”。您应该根据您的总行数修改此数字。我使用 16 来保护我的计算机免受额外的 运行 问题:)
祝你有愉快的一天。
Sub Auto_Open()
For i = 2 To 16
If Cells(i, 3).Value = 1 Then
For j = 2 To 16
If Cells(j, 1).Value = Cells(i, 1).Value Then
Rows(j).Interior.Color = vbRed
End If
Next
End If
Next
For i = 2 To 16
Rows(i).Select
If Rows(i).Interior.Color = vbRed Then
Selection.Delete
i = i - 1
End If
Next
End Sub
Power Query 解决方案
让我们像您一样获取示例数据
- select 你的数据
- 数据 选项卡单击
get & transform
然后from table
- 电源查询window将被打开
- 通过
group by
创建 2 个新列说dat
和dummy
- 展开
dat
得到这样的
- 关闭并将数据加载回 excel
现在您可以轻松地通过虚拟列过滤掉数据。