我在评估 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 并且条件格式会为单元格添加颜色。