具有多个公式的整行的Excel条件格式

时间:2013-04-12 16:50:46

标签: excel formula rule conditional-formatting

经过3个小时的搜索,我仍然没有找到答案,这就是我想要做的事情:

我正在尝试用绿色填充任何包含WBS的行,使用红色填充其中包含ACT的行和蓝色任何包含EPR的行。它适用于第一个公式,然后当我尝试添加第二个公式时,每个事情都搞砸了。

2 个答案:

答案 0 :(得分:0)

我所理解的是你需要连续搜索一个关键字,如果在该行的任何单元格中找到它,那么就给它上色。

可能我们可以使用条件格式来完成它,但我有另一个想法。我们可以在Excel VBA中创建一个简单的搜索功能。像这样:

= search_row(A1:F1, “EPR”)

如果在指定行的任何单元格中找到EPR,则该函数将返回1。现在,如果在数据列的末尾创建两个不同的列,请先使用WPS命名,然后使用EPR命名,并在其中写入此函数。像

G1 = search_row(A1:F1,“WPS”)

H1 = search_row(A1:F1,“EPR”)

将其拖至结尾。现在对列进行排序。首先是WPS从高到低。然后在单个选择中为所有行着色1。同样地,对EPR(H1)列进行相同的操作。

要使用此功能,您可以从以下URL下载宏文件:

http://asimishaq.com/myfiles/SearchHighlight.xlsm

现在首先运行它启用宏,然后重新打开数据文件,然后打开此宏文件。只要打开此宏文件,就可以使用此功能。如果您想自己创建宏,以下是VBA代码:

Function search_row(sRow As Range, Keyword As String)
    Dim i As Integer
    Dim Found As Integer

    For i = 1 To sRow.Columns.Count
        If InStr(1, LCase(sRow.Cells(1, i)), LCase(Keyword)) > 0 Then
          search_row = 1
        End If
    Next
End Function

答案 1 :(得分:0)

我有一个类似于asim-ishaq的功能,以确定你的搜索词是否存在于行中以获得乐趣:)然后尝试将其应用于突出显示行,结果我不知道如何使用条件格式非常好!最后弄清楚了,希望我已经解释得很好了。

使用此功能,您必须在数据末尾添加(一个)额外列以包含结果。

通过将函数放在条件格式中可能不需要额外的列,但是我无法使它工作(没有非常努力)。这不是一个很大的损失,因为如果在工作簿上编辑公式更简单,而不是必须通过每个条件规则来编辑它,如果您将来需要编辑它。

要使格式化生效,您需要创建一些规则(每个关键字一个)

example formatting for 3 keywords

您想要创建下面显示的类型的规则,在公式框中您需要以下内容:=INDIRECT("D" & ROW())=0其中D是包含下面函数结果的列,{ {1}}是您要突出显示的关键字的索引。

在我的示例中,0列中的公式为:D(其中n是公式所在的行)

根据需要设置格式,然后按确定,当您返回规则管理器时,您需要更新=SearchRow(An:Cn,"ABS","KBS","JBS")值,该值应该是一个涵盖您要突出显示的所有数据的范围。在我的例子中,它是Applies to

type of rule to add

我的下面的函数需要2个以上的参数,第一个是要搜索的范围。第二个(以及任何后续的)是搜索词。

该函数将返回一个数字。 -1表示没有匹配,0 +表示找到的搜索字词。数字取决于参数中的位置。

$A$1:$C$3

该函数将始终返回第一个结果,从左到右搜索按顺序将每个单元格与关键字进行比较。使用我的示例,如果单元格包含“SBA ABS”,则结果将为0(对于ABS)。我猜你的单元格可能只包含一个关键字,所以这应该不是问题吗?

A1 = "ABS"
B1 = "SBA"

A2 = "SBA"
B2 = "ABS"

A3 = ""
B3 = ""

C1 = "=SearchRow(A1:B1, "ABS", "SBA")"
C2 = "=SearchRow(A2:B2, "ABS", "SBA")"
C3 = "=SearchRow(A3:B3, "ABS", "SBA")"

C1 > 0
C2 > 1
C3 > -1