如何修改Web Intelligence公式精准提取R后含数字的日期
Business Objects Web Intelligence 日期提取公式优化
原公式会匹配文本中所有含"R"的位置,无法区分"R"后是否紧跟纯数字,容易误提取无效内容。针对这个问题,我们可以通过增加纯数字校验来优化公式,确保只识别"R"后紧跟6位纯数字的情况:
=If( Pos([Note]; "R") > 0 And Length(Substr([Note]; Pos([Note]; "R") + 1; 6)) = 6 And IsNumeric(Substr([Note]; Pos([Note]; "R") + 1; 6)); FormatDate(ToDate(Substr([Note]; Pos([Note]; "R") + 1; 6); "ddMMyy"); "yyyy/MM/dd"); "Invalid Date" )
公式逻辑说明:
- 保留原有的
Pos([Note]; "R") > 0判断文本中存在"R",以及Length(...) = 6确保提取的字符长度为6位 - 新增
IsNumeric(Substr([Note]; Pos([Note]; "R") + 1; 6)),校验"R"后的6位字符是否为纯数字 - 只有同时满足以上三个条件,才会将提取的字符串转换为指定格式的日期;否则返回"Invalid Date"
以你提供的示例文本:
"Please add to Reading list BMS999 crn 1234 Req R180723 Oversize QP34.5.M27 2023 put previous ed on standard loan and withdraw 10th ed (2005) from stock"
公式会精准定位到"R180723"中的"R",提取后续的180723并转换为2018/07/23,而忽略"Reading"中的"R"这类无效匹配。
内容的提问来源于stack exchange,提问作者Blowers
相关产品推荐
相关产品推荐

