2016-12-05 49 views
1

字符串使用条件格式,我想知道这是可以做到下列之一:突出一个细胞,如果它包含的范围

我有一个表,bad_data,与让列B,F说,和K,包含不良数据。每个单元格都有一个长度为6的字符串(尽管在这种情况下我认为它不重要)。列B,F和K都有不同数量的行,并且随着时间的推移,我可能会逐渐增加行数。

我有另一张纸(在同一个工作簿中,让我们称之为“记录”),我在那里保存某些事物的记录。在这张表中,有些列可能包含前面提到的错误数据,让我们以列M为例。

我很难想出一个公式,它突出显示一个单元格,如果它包含列B,F和K中的任何字符串,即:查看单元格范围内的单元格范围内的所有值

我已经能够想出突出显示它们相同的单元格的方法,例如:如果M10 = 123456和B = 123456,但是我还需要突出显示M10 =“123456,78910,111213”。

最终id喜欢提取匹配字符串并将其写入另一个单元格(可能使用表单中的正则表达式)或突出显示单元格内的匹配字符串,这甚至有可能吗?

我可以很容易想出的办法在Python,Perl中,庆典,ECT做到这一点....但我想这将会是对于那些不精通编写代码在电子表格中维护用户更容易。

也许我正在过度这个,但我很难过。

回答

1

您可以使用基于自定义公式的regexmatch的条件格式,其中正则表达式构建在指定列之外。下面是B柱的例子:

=regexmatch(M10, "\b(" & join("|", filter($B:$B, len($B:$B))) & ")\b") 

filter($B:$B, len($B:$B))发生在B列非空单元格其所连接的正则表达式的替代品,并包裹在单词边界(如果你想执行这些)。

同样的,多列,刚刚加入的结果联接:

& join("|", filter($B:$B, len($B:$B))) & "|" & join("|", filter($F:$F, len($F:$F))) & "|" & join("|", filter($K:$K, len($K:$K))) 

顺便说一句,如果你的字符串确实数字,如“123456”,他们应该被格式化为纯文本的REGEXMATCH治疗他们作为字符串。

提取匹配的字符串,并将其写入到另一个细胞

可以用regexextract具有完全相同的参数作为上述regexmatch来完成。

高亮小区

不可能内匹配的字符串。存在单元格内容的部分格式,但仅限手动编辑。它不能通过公式或脚本来应用。

+0

感谢你们,我设法让整个列的匹配工作(将M10换成$ M:$ M,以便检查所有M)。如果$ B:$ B在另一张工作表(不是工作簿)中,是否需要使用任何其他功能?它不承认我的命名范围,或Sheet1!A:格式。另外,Im仍然被regextract困惑,虽然我明白参数是相同的,它在哪里输出匹配?在同一个单元上发现它?我是否必须将公式应用于空列,然后匹配会生成? – user4829733

+0

没关系,想通了regextract并引用:) – user4829733

相关问题