【问题标题】:Excel contains filter with more than 2 valuesExcel 包含具有超过 2 个值的过滤器
【发布时间】:2013-06-23 18:34:58
【问题描述】:

有谁知道如何快速隐藏/删除 sheet1 中包含 sheet2 中任何行信息的所有行?

它需要包含过滤器,因为它不会是 精确 匹配。

例如

表 1:

http://www.google.com/something/else
http://www.yahoo.com/whatever
www.microsoft.com/hahha

表 2:

google.com

所以最终结果是 Sheet1 中的第一行将被隐藏

实际上,我在 sheet1 和 Sheet2 中处理数千行。

为了澄清,我实际上是在尝试使用超过 2 个值的 contains 过滤器 - 默认过滤器只允许 2 个值。

我也在使用 Excel for Mac 2011。

【问题讨论】:

  • 什么是工作表名称以及您的数据使用哪些列?

标签: excel vba macos excel-formula


【解决方案1】:

您可以使用简单的帮助列快速完成此操作,而无需大范围循环。

为简单起见:

  • 假设您的工作表 1 列表位于 A1:A1000
  • 您的工作表 2 部分列表位于 C1:C5(在下图的同一工作表上)
  • 然后在B1:B1000范围内输入这个数组公式, =MAX(IF(ISERROR(FIND($C$1:$C$5,A1)),0,1))=1

(按Ctrl+Shift+Enter作为数组公式输入)

  • 然后自动过滤TRUErows(标记任何匹配项)并隐藏它们

【讨论】:

  • 出于某种原因,它们都对我返回 true,并且它说公式指的是空单元格。我的设置方式与您使用此公式的方式相同。 =MAX(IF(ISERROR(FIND($C$1:$C$579,A1)),0,1))=1 我确保按住 command + shift + enter 所以这是一个数组公式。 (它显示大括号)。这是一个 Mac Excel,那会有什么不同吗?
  • 新信息 :) 我没有使用 Mac Excel 的经验 - 我不会认为它会有所作为,尤其是如果您的数组似乎有效(命令键或 ctrl 键?) ,但我会通过 Mac 专家来传递。
  • 当公式向下复制时,A 行确实会超出第 1 行?即 B2 = =MAX(IF(ISERROR(FIND($C$1:$C$5,A2)),0,1))=1
  • 抱歉,我以为我在 OP 中包含了 Mac for Excel。我现在相应地改变了它。是的,A 行确实增加了一个,但是当我在下一列中看到数据时,他们都说出于某种原因引用了空单元格。我将在我的 PC 上的 Excel 上尝试一下,看看是否可行。
  • @Zen:好的,我在 Win/Mac Excel 中都进行了测试。上面的公式适用于两者...如果您提到了$C$1:$C$5,请确保单元格 C4:C5 中没有空白单元格,否则您将得到不希望的结果。
【解决方案2】:

当我阅读@brettdj 发布的解决方案时,我认为它应该可以解决您的问题。

从您的评论看来,您在使用他的解决方案时遇到了空单元问题。您确定将 $C$1 : $c$5 替换为正确的值吗?

在您的情况下,您应该首先参考右表(Sheet2,如果您没有重命名它)然后是右列(假设您在 sheet2 的 A 列中有它)。

你应该写=MAX(IF(ISERROR(FIND(sheet2!$A$1:$A$5,sheet1!A1)),0,1))=1

【讨论】:

  • 啊刚刚发现了一个问题。我确实在这 700 个左右的牢房中间隐藏了一个空牢房。一旦我删除了这些,它就像一个魅力!
  • + 1 是的,这就是问题所在。抱歉没有看到你的帖子:)
猜你喜欢
  • 2019-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多