如何在 Excel 中筛选包含英文字符的行?

如何在 Excel 中筛选包含英文字符的行?

我知道 Microsoft Excel 无法使用正则表达式。此外,筛选函数只能接受 2 个自定义筛选条件,例如包含“a”或包含“b”。

在单元格包含英文和非英文字符的 Excel 文件中,如果行 A 包含任何英文字符(az,不区分大小写),我该如何筛选行?

ps 我不想写宏脚本(VB 或 .NET 代码)

答案1

尝试以下公式。它假定范围是单列。

=LET(data,
       BYROW(B2:B7,
         LAMBDA(row,
           IF(SUM(IFERROR(
              FIND({"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"},
                LOWER(row)),0)),row,""))),FILTER(data,data<>""))

解释:该公式首先将字符转换为小写。然后,尝试查找行中是否存在从 a 到 z 的字符。如果是,则将位置(字符在文本中的位置)相加。我们将得到一个大于 0 的数字。这适用于 B2 到 B7 范围内的每一行。最后,过滤数据以删除没有这些字符的行。

更改 B2:B7 以匹配您的范围。

编辑(根据 OP 的评论):如果您必须根据某一列(B2 到 B5)过滤表格(B2 到 F5),请采用以下公式:

=FILTER(B2:F5,B2:B5=
       BYROW(B2:B5,
         LAMBDA(row,
           IF(SUM(IFERROR(
              FIND({"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"},
                LOWER(row)),0)),row,""))))

答案2

首先,我不是 Excel 专家。VBA 和所有这些公式可能太复杂,无法过滤给定列内的数据以及左右填充的列。

我的建议是尽快试用一下(至少 90 天免费)。我经常使用它,而且它提供很好的支持。不,我不为他们工作。

ASAP 确实支持正则表达式。

在附件中,您的帖子和一些回复与日期混合在一列中。然后 ASAP > 选择 > 正则表达式 - [az]

只是一个建议。

尽快使用正则表达式

相关内容