我有一列sg1,其中日期作为字符串,并且可能还有一些额外的字符,例如
25/10/18 (M)
25/06/15 (P) this is planned.
我的日期格式是DD / MM / YY。 我必须根据单元格值对单元格进行着色。 我已经为该列编写了背景色表达式。 最后一个条件是无法正常工作并引发错误。
=IIF(Fields!sg1.Value = "W","Khaki",
IIF(Fields!sg1.Value="g","Gray",
IIF(Fields!sg1.Value="b","Blue",
IIF((LEN(Fields!sg1.Value)=12 And
Format(LEFT(Fields!sg1.Value,8),"YY-MM-DD")<Today),"Pink",
"Green"))))
我无法解决问题。
答案 0 :(得分:1)
尝试用这个想法来改变您的最后状况:
And
CDate(LEFT(Fields!sg1.Value,8))<Today(),"Pink", "Green")
对于您的字段,此代码应该可以:
=IIF(Fields!sg1.Value = "W","Khaki",
IIF(Fields!sg1.Value="g","Gray",
IIF(Fields!sg1.Value="b","Blue",
IIF(LEN(Fields!sg1.Value)=12 And
CDate(LEFT(Fields!sg1.Value,8))<Today(),"Pink", "Green"))))
答案 1 :(得分:1)
这比我想的要复杂。我自己测试了它,并以此方式工作:
=IIF(Fields!sg1.Value = "W","Khaki",
IIF(Fields!sg1.Value="g","Gray",
IIF(Fields!sg1.Value="b","Blue",
IIF((LEN(Fields!sg1.Value)=12 And
DateSerial(Mid(Fields!sg1.Value, 7, 2),
Mid(Fields!sg1.Value, 4, 2),
Left(Fields!sg1.Value, 2))
<Today),"Pink", "Green"))))
从25/10/18
开始的是Mid(Fields!sg1.Value, 7, 2) = 18 (YY)
,Mid(Fields!sg1.Value, 4, 2) = 10 (MM)
和Left(Fields!sg1.Value, 2) = 18 (DD)
。