Spotfire计算列:达标后首次体重低于阈值的日期
在Spotfire中计算达标后首次体重低于目标值的日期
步骤1:提取达标体重(可选,可嵌套进最终公式)
若需要单独获取每个用户的达标体重,创建计算列[goal weight],公式如下:
First([weight]) over ([person]) where [goal weight day] is not null
该公式会提取每个用户首次达标时的体重(比如示例中Bob的160),并填充到该用户的所有行中。
步骤2:计算[drop day]列
创建计算列[drop day],使用以下公式:
If([day] >= [goal weight day], Min([day]) over ([person]) where ([day] > [goal weight day] and [weight] < [goal weight]), NULL)
公式逻辑说明:
- 先判断当前行日期是否在达标日期之后(含达标日),是则计算drop day,否则返回空值。
Min([day]) over ([person]):在同一用户范围内,筛选出日期晚于达标日且体重低于达标体重的所有记录,取其中最小的日期(即首次出现的日期)。- 所有符合条件的行都会共享这个首次日期,和你示例中的结果完全匹配。
如果不想单独创建[goal weight]列,也可以直接将达标体重的计算嵌套进公式,简化为:
If([day] >= [goal weight day], Min([day]) over ([person]) where ([day] > [goal weight day] and [weight] < First([weight]) over ([person] where [goal weight day] is not null)), NULL)
内容的提问来源于stack exchange,提问作者Mike Z
相关产品推荐
相关产品推荐

