【问题标题】:Excel IF statement to filter numbers and lettersExcel IF 语句过滤数字和字母
【发布时间】:2018-05-23 09:33:34
【问题描述】:

我正在尝试在 excel 中使用 IF 语句,以便我可以根据结果用是或否填充多个单元格。我遇到的问题是,我要过滤的项目以 2 个字母开头,字母后有 5 个或 6 个数字,具体取决于项目。我想对其进行过滤,以便如果该项目在 2 个起始字母之后包含 6 个数字,则在其旁边的单元格中生成字母 N,如果该项目在起始字母之后有 5 个数字,则应在细胞。

以下是我所指的项目的示例:
JJ230315
TT22252
在这些项目旁边的单元格中,我想生成 Y 或 N。

任何帮助将不胜感激!

【问题讨论】:

  • 澄清一下:您是否有任何情况下您有 3 个字母和 4/5 个数字,或者可以将其视为“长度为 7 (Y) 或 8 (N) 个字符”跨度>

标签: excel excel-formula


【解决方案1】:

因此,如果您在 A 列中有数据,请使用:

=IF(LEN(A1)=8,"N","Y")

【讨论】:

  • 这会根据原始问题进行零验证。它只检查长度。
  • 正如@TimBiegeleisen 所说 - JJJJJJJJ 将返回“N”,12345678 也将返回“N”,空白单元格将返回“Y”, 也将返回这不是以两个字母开头,也没有数字。另一方面,如果您只想在单元格中有 8 个字符时返回“Y”,否则返回“N”,那么这是完美的。
  • @TimBiegeleisen 它没有验证,但问题似乎不在于验证,而在于长度 - 这就是我从问题和示例中得出的结论。
【解决方案2】:

在这个答案中,我使用"Y" 条件的公式。其他所有内容都将标记为"N"。一种方法是使用CODE() 函数来断言前两个字符中的每一个都是大写或小写字母。然后,我们可以在剩下的五个字符上使用ISNUMBER() 来断言它们是数字。

=IF(AND(OR(AND(CODE(MID(A1,1,1))>=65,CODE(MID(A1,1,1))<=90),
    AND(CODE(MID(A1,1,1))>=97,CODE(MID(A1,1,1))<=122)),
        OR(AND(CODE(MID(A1,2,1))>=65,CODE(MID(A1,2,1))<=90),
    AND(CODE(MID(A1,2,1))>=97,CODE(MID(A1,2,1))<=122)),
        ISNUMBER(MID(A1, 3, 5)*1),
        LEN(A1) = 7), "Y", "N")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多