我有 B 列,我需要测试其长度以查看它是否超过 200 个字符。如果它超过200个字符,我需要它从右到左找到分号“;”的出现。并将分号右侧的字段拆分为 C 列。这可以做到吗?在我不得不用 4 列执行此操作并将其减少为一列之前。请告知最好的公式来做到这一点。
最佳答案
=IF(LEN(B1)>200,MID(B1,SEARCH("@",SUBSTITUTE(B1,";","@",LEN(B1)-LEN(SUBSTITUTE(B1,";","")))+1,LEN(B1)),"")
解释:
- 删除分隔符的所有实例:
SUBSTITUTE(B1,";","")
- 将整个字符串的长度减去(1)的长度,得到分隔符出现的次数:
LEN(B1)-LEN([1])
- 用 @ 替换最后一次出现的定界符:
SUBSTITUTE(B1,";","@",[2])
- 找到@的位置:
SEARCH("@",[3])
- 获取@位置右侧所有内容的子串:
MID(B1, [4] +1,LEN(B1))
- 添加 if 条件以仅处理长度大于 200 的字符串:
=IF(LEN(B1)>200,[5],"")
关于Excel 测试 1 个字段的长度,如果 len>200 则除法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17347769/