嵌套的 IIF 语句产生 3 个结果中的 1 个

Nested IIF statement to produce 1 of 3 results

我正在尝试拼凑一个嵌套的 "IIF" 语句以生成三个值之一,但我的行不工作

=IIF(Fields!LeaseNumber.value = "", "Vacant",Fields!tenantName.value) AND (IIF(Fields!tenantName.Value ="",Fields!LeaseDBA.Value, Fields!tenantName.Value))

我的预期结果应该是:

如果没有租约# - "Vacant"

如果没有租户名称 - "LeaseDBA"

所有其他行只给我 - "tenantname"

我查看的所有其他问题似乎都不符合此类 IIF 条款。 非常感谢任何帮助。

If No lease# - "Vacant"(如果没有 LeaseNumber 则显示 "Vacant" - 仅字符串)

If no tenantName - "LeaseDBA" (If there is not tenantName then show 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))

我实际上最近只是试图解释 IIF 表达式的工作原理以及如何嵌套它们。

要检查值是否为 null 或空,最好使用以下函数之一:

  • 您可以使用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" )