AppSheet:如何基于指定产品获取最新值作为初始值?代码排查
AppSheet 预填充产品最新过期时间问题解决
原代码问题分析
你用的LOOKUP和MAXROW组合存在逻辑问题:MAXROW返回的是整行的引用(Row Reference),而非_RowNumber的具体数值,所以LOOKUP用这个行引用去匹配_RowNumber列的数字,自然无法找到对应结果,也就拿不到Expiration的值。
正确公式写法
有两种可靠的实现方式:
方法1:直接通过MAXROW引用目标列
利用MAXROW返回的行引用,直接提取目标列的值,写法更简洁:
MAXROW("Scans", "_RowNumber", ([Product] = [_THISROW].[Product])).[Expiration]
方法2:用LOOKUP配合MAX筛选_RowNumber
如果坚持使用LOOKUP,需先获取对应产品的最大_RowNumber数值,再进行匹配:
LOOKUP( MAX("Scans", "_RowNumber", ([Product] = [_THISROW].[Product])), "Scans", "_RowNumber", "Expiration" )
设置为初始值的步骤
- 打开Scans表的列编辑器,找到Expiration列
- 在**初始值(Initial value)**设置项中,填入上述任意一个公式
- 保存设置后,新建行并选择Product时,Expiration会自动填充该产品最近录入的过期时间
注:首次录入某产品时,因无历史数据,初始值会为空,属于正常情况。
内容的提问来源于stack exchange,提问作者Tom
相关产品推荐
相关产品推荐

