嗨 - 我需要帮助来放置一个公式来根据条件查找最近的行并检索不同的列值/在两个行参数(DateTime)之间执行计算。
下面的数据表(也附上)有:资产、日期时间、离散和操作列。
数据先按 Asset 后 DateTime 排序(升序)
还有一个表变量 days_threshold = 4。
Action(Desired) 是当前公式所需的 Action 形式

需要修改。
任何获得一个离散的= 1(通常由此处跳过的公式规则确定,而是提供的样本值),行动需要开始查看它自己之前的行(在约会时间降序形式)。 该搜索中的两个条件是:
1-寻找相同的资产为此离散的=1(即 XY01 或 XY02)
2-查看直到最近的值行动 = 1被发现。
计算上次 Action 为 1 与当前行的 DateTime 之间的天数。
如果差异(以天为单位)>= days_threshold = 4 ---> 那么当前行的操作 = 1
否则,如果差异(以天为单位)< days_threshold ---> 那么当前行的操作 = 0
只对查找 Action 为“1”的最近时间感兴趣... 一旦找到该单个值(如果存在),搜索就可以在该点停止。 搜索的限制是直到第一次出现该资产(即最旧的记录)。 如果之前从未将 Action 设置为“1”,则可以将当前行的 Action 设置为“1”
例如,第 2 行是 XY01 第一次获取 Action =1(基于离散,它本身与一些规则相关联,在此示例中仅显示 w/ 值)。
接下来在第 3 行,Discrete 再次设置为 1,但这次 Action 需要为 0,因为先前行和当前行之间的天数差异为 0 (< days_threshold)。
同样,对于第 5 行,Action 仍然保持为 0,因为距离上次 Action 为 1 仅过去了 3 天。
最后 Action 在第 6 行设置为“1”。
按照这个想法提供了两个资产 - 将所需的值设置为 Action(Desired)。
我更喜欢这是一个公式而不是脚本。
在此先感谢 JMP 团队。
阿尔图·拜拉姆
