2016-12-05 108 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

相關問題