【问题标题】:Excel Conditional Statement to determine which rows to delete and which to keepExcel 条件语句确定要删除哪些行和保留哪些行
【发布时间】:2016-07-14 14:01:39
【问题描述】:

我有 2 张包含数据的 Excel 工作表,这些数据可以帮助我确定是否需要删除或保留一行。本质上,它的工作方式是我在两张数据表中都有 A 列,其中包含一个代码,而表 2 的 B 列包含文本“Free”的值。对于表 1 的 A 列中的每个代码,我想检查表 2 的 A 列中是否存在相同的代码,如果存在,我想查看同一行的表 2 的 B 列,如果它是单元格包含“FREE”我想从表 1 中删除包含该代码的整行。

Sheet 1:                     Sheet 2:

A      B      C            A      B      C
1234   Data  Data          1234  FREE   Data
1235   Data  Data          1456  Value  Data
1547   Data  Data          1547  Free   Data
1483   Data  Data          1247  Value  Data

那么我们会得到:

Sheet 1:                                Sheet 2:

A      B      C    *Decision        A      B      C
1234   Data  Data   Delete          1234  FREE   Data
1235   Data  Data   Keep            1456  Value  Data
1547   Data  Data   Delete          1547  Free   Data
1483   Data  Data   Keep            1247  Value  Data

这是我尝试过的,但这里有一个我无法弄清楚的错误。我假设我在语法上做错了什么。 HS 是工作表 2 的 A 列的名称范围

=IF((VLOOKUP(A2,HS,1) = A2) and (Vlookup(A2, HS, 2) = "FREE"), "delete", "keep")

【问题讨论】:

  • 删除了vba标签并替换为formula标签

标签: excel excel-formula


【解决方案1】:

试试下面的公式。它会工作

=IF(ISNA(MATCH(A1,Sheet2!A:A,0))=FALSE,"Delete","Keep")

工作证明

编辑#1

根据要求,请看表2公式

=IF(ISNA(MATCH(A1,Sheet1!A:A,0))=FALSE,"Delete","Keep")

【讨论】:

  • 太棒了……有没有办法对其进行编辑,以便对表 1 中包含的任何代码也说“删除”,而表 2 中也没有这些代码?
  • 见我的编辑#1。希望你提出这个要求
  • 我的想法是将初始解决方案与附加请求结合起来,以便一个公式将检查这两个条件(如果两个工作表中的 A 列中的代码与工作表中的 B 列相同2 是“免费”,然后还检查工作表 A 中的代码是否在工作表 2 中与删除条件相同的公式中找不到)。这可能吗?
  • 可以使用 Sheet 2 中的帮助列
【解决方案2】:

您的AND 放错地方了。它应该启动多个条件,每个条件需要用逗号分隔:

=IF(AND((VLOOKUP(A2,HS,1) = A2),(Vlookup(A2, HS, 2) = "FREE")), "delete", "keep")

【讨论】:

  • 知道为什么 =Vlookup(A2, HS, 2) 会给我#REF!而不是返回 FREE 或第 2 页的 B 列中包含的任何其他值?
【解决方案3】:

这是否实现了您的目标?

=IFERROR(IF(VLOOKUP(A3;Sheet2!$A$1:$C$5;2;FALSE)="Free";"delete";"keep");"keep")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-08
    • 1970-01-01
    • 1970-01-01
    • 2012-03-21
    • 2017-08-25
    • 2011-03-31
    • 2010-11-27
    • 1970-01-01
    相关资源
    最近更新 更多