如何检查单元格的数字系列?

如何检查单元格的数字系列?

我在评估 Excel 单元格时遇到了一些问题。例如:

          M   M   M   M   M   M   M   M   M   
          1   2   3   4   5   6   7   8   9
2;5;7
1;9
3;5;7;9   

我有许多包含数字(月份)的 Excel 单元格。第一列中有一系列数字。我想使用条件格式为右列中的相应单元格着色。如果颜色正确,我会得到如下结果:

          M   M   M   M   M   M   M   M   M   
          1   2   3   4   5   6   7   8   9
2;5;7         X           X       X
1;9       X                               X
3;5;7;9           X       X       X       X

我现在的公式是这样的:

IF(ISNUMBER(FIND(L$22;$K23));$H23;"")

但问题是包含部分数字的单元格也会被着色。如果我输入 10;15,我会得到以下结果:

          M   M   M   M   M   M   M   M   M   M   M   M   M   M   M
          1   2   3   4   5   6   7   8   9  10  11  12  13  14  15
10;15     X               X                   X                   X

因为 1 和 5 也找到了。我只想标记第 10 列和第 15 列。我该如何更改公式或输入?

答案1

篡改输入数据可能是一种“作弊”——但也许是最简单的!我会在输入数据的开头和结尾添加一个分号,然后使用

=FIND(";"&L$22&";",$K23)>0

但我认为您也必须用分号代替这个公式中的逗号。

答案2

我找到了一些 VBA 函数,我将其更改为以下函数,它就可以工作了:

Function CHECK_INTERVALL(str, colmonth, sepChar)

Dim months As Variant
months = Split(str, sepChar)
Dim i As Integer

CHECK_INTERVALL = False

For i = LBound(months) To UBound(months)
        If CInt(colmonth) = CInt(months(i)) Then
            CHECK_INTERVALL = True
        End If
Next i

End Function

如果当前月份在列表中,我会得到 true 并且条件格式会为单元格添加颜色。

相关内容