You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

BO Webi技术问题:如何显示空白而非计算值

BO Webi变量空值处理:日期时间差值为空时显示空白

问题场景

计算两个日期时间字段的差值时,若其中一个字段为空,当前变量仍会输出计算结果,需求改为这种场景下显示空白。

现有变量公式

CT Time Diff (Started to Completed)

=(((DaysBetween([CT Exam Started Date & Time];[CT Completed Date & Time]))*1440)+(ToNumber(Substr(FormatDate([CT Completed Date & Time];"HH:mm:ss");1 ;2))-ToNumber(Substr(FormatDate([CT Exam Started Date & Time];"HH:mm:ss");1 ;2)))*60+(ToNumber(Substr(FormatDate([CT Completed Date & Time];"HH:mm:ss");4 ;2))-ToNumber(Substr(FormatDate([CT Exam Started Date & Time];"HH:mm:ss");4 ;2))))

CT Started to Completed Time (MM)

=If (([CT Time Diff (Started to Completed)]) >= 0) Then [CT Time Diff (Started to Completed)]

解决方案

核心是通过IsNull()函数判断字段是否为空,只要任意一个日期时间字段为空,就返回空白字符串"",否则执行差值计算。

方案1:修改上层变量(推荐)

直接调整CT Started to Completed Time (MM),在原有逻辑前增加空值判断:

=If (IsNull([CT Exam Started Date & Time]) Or IsNull([CT Completed Date & Time])) Then ""
Else If ([CT Time Diff (Started to Completed)] >= 0) Then [CT Time Diff (Started to Completed)]

方案2:修改底层变量

在CT Time Diff (Started to Completed)中加入空值判断,所有依赖它的变量会自动继承空值处理逻辑:

=If (IsNull([CT Exam Started Date & Time]) Or IsNull([CT Completed Date & Time])) Then ""
Else (((DaysBetween([CT Exam Started Date & Time];[CT Completed Date & Time]))*1440)+(ToNumber(Substr(FormatDate([CT Completed Date & Time];"HH:mm:ss");1 ;2))-ToNumber(Substr(FormatDate([CT Exam Started Date & Time];"HH:mm:ss");1 ;2)))*60+(ToNumber(Substr(FormatDate([CT Completed Date & Time];"HH:mm:ss");4 ;2))-ToNumber(Substr(FormatDate([CT Exam Started Date & Time];"HH:mm:ss");4 ;2))))

说明

  • IsNull()函数用于检测字段是否为空,Or逻辑确保任意一个字段为空时都返回空白
  • 空白字符串""在Webi中会显示为空白单元格,符合需求

内容的提问来源于stack exchange,提问作者jsisock79

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 11:55:24