我有以下代码(嵌套 IIF/Lookup)用于确定特定单元格的颜色。它适用于第一个值(已批准),但所有其他值都不会产生填充颜色。我还想指出,这些值是从下拉列表中填充的,因此不存在输入错误或大小写问题。查找值也正确。我也仔细检查过。
=IIF((Lookup(Fields!ID.Value, Fields!ParentLink139.Value, Fields!TTStatus.Value, "TrialTracker") = "APPROVED"),
IIF((Lookup(Fields!ID.Value, Fields!ParentLink139.Value, Fields!TTStatus.Value, "TrialTracker") = "PENDING"),
IIF((Lookup(Fields!ID.Value, Fields!ParentLink139.Value, Fields!TTStatus.Value, "TrialTracker") = "DEAD"),
IIF((Lookup(Fields!ID.Value, Fields!ParentLink139.Value, Fields!TTStatus.Value, "TrialTracker") = "APPROVED/ORDER PLACED"),
"Aqua",
"Tomato"),
"Yellow"),
"Lime"),
Nothing)
嵌套 IIF 读起来很糟糕,我总是使用
SWITCH()
,它更易于阅读和调试。
我现在无法测试,但应该没问题
=SWITCH(
Lookup(Fields!ID.Value, Fields!ParentLink139.Value, Fields!TTStatus.Value, "TrialTracker") = "APPROVED", "Lime",
Lookup(Fields!ID.Value, Fields!ParentLink139.Value, Fields!TTStatus.Value, "TrialTracker") = "PENDING", "Yellow",
Lookup(Fields!ID.Value, Fields!ParentLink139.Value, Fields!TTStatus.Value, "TrialTracker") = "DEAD", "Tomato",
Lookup(Fields!ID.Value, Fields!ParentLink139.Value, Fields!TTStatus.Value, "TrialTracker") = "APPROVED/ORDER PLACED", "Aqua",
True, Nothing
)
最后的
True
就像一个ELSE
。