我正在尝试拼凑一个嵌套的" IIF"声明产生三个值中的一个,但我的行不起作用
=IIF(Fields!LeaseNumber.value = "", "Vacant",Fields!tenantName.value) AND (IIF(Fields!tenantName.Value ="",Fields!LeaseDBA.Value, Fields!tenantName.Value))
我的预期结果应该是:
如果没有租约# - "空缺"
如果没有租户名称 - " LeaseDBA"
所有其他行只是给我 - " tenantname"
我审查的所有其他问题似乎都与这种类型的IIF条款相匹配。 任何帮助真的很感激。
答案 0 :(得分:2)
我实际上最近刚试图揭示IIF表达式如何工作以及如何嵌套它们。 http://codepen.io/anon/pen/JGwjXZ
要检查某个值是空还是空,您最好使用以下功能之一:
您可以使用IsNothing()
检查是否有值。应用于您的示例将导致:
=IIF(IsNothing(Fields!LeaseNumber.value)
,"Vacant"
,IIF(IsNothing(Fields!tenantName.Value), Fields!LeaseDBA.Value, Fields!tenantName.Value))
您可以使用Len()
计算值的长度,然后检查它是否大于0.
=IIF(Len(Fields!LeaseNumber.value) > 0
,IIF(Len(Fields!tenantName.Value) > 0, Fields!tenantName.Value, Fields!LeaseDBA.Value)
,"Vacant" )
答案 1 :(得分:0)
如果没有租约# - “空置”(如果没有LeaseNumber则显示“空置” - 仅限字符串)
如果没有tenantName - “LeaseDBA”(如果没有tenantName则显示Fields!LeaseDBA.Value
对于其他行,只需给我Fields!tenantName.Value
如果您想要,请尝试以下表达式。
IIF(Trim(CStr(Fields!LeaseNumber.Value))="","Vacant",CStr(Fields!tenantName.Value)) & IIF(Trim(CStr(Fields!tenantName.Value))="",Fields!LeaseDBA.Value,CStr(Fields!tenantName.Value))