Excel 测试 1 个字段的长度,如果 len>200 则除法

标签 excel excel-formula excel-2010

我有 B 列,我需要测试其长度以查看它是否超过 200 个字符。如果它超过200个字符,我需要它从右到左找到分号“;”的出现。并将分号右侧的字段拆分为 C 列。这可以做到吗?在我不得不用 4 列执行此操作并将其减少为一列之前。请告知最好的公式来做到这一点。

最佳答案

=IF(LEN(B1)>200,MID(B1,SEARCH("@",SUBSTITUTE(B1,";","@",LEN(B1)-LEN(SUBSTITUTE(B1,";","")))+1,LEN(B1)),"")

解释:

  1. 删除分隔符的所有实例:SUBSTITUTE(B1,";","")
  2. 将整个字符串的长度减去(1)的长度,得到分隔符出现的次数:LEN(B1)-LEN([1])
  3. 用 @ 替换最后一次出现的定界符:SUBSTITUTE(B1,";","@",[2])
  4. 找到@的位置:SEARCH("@",[3])
  5. 获取@位置右侧所有内容的子串:MID(B1, [4] +1,LEN(B1))
  6. 添加 if 条件以仅处理长度大于 200 的字符串:=IF(LEN(B1)>200,[5],"")

关于Excel 测试 1 个字段的长度,如果 len>200 则除法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17347769/

相关文章:

excel - 有没有更简单/更好的方法来使用预定义的字典?

excel - Excel VBA 中是否提供 "Short"数据类型?

excel - VBA删除行自动过滤器非空白

vba - 以编程方式对行或列进行分组和取消分组

excel - 如何在for语句中为行选择列值?

java - Apache POI poi-ooxml :4. 0.0 抛出 org.apache.poi.ooxml.POIXMLException

excel - Excel 中的索引匹配公式

excel - 如何在vba中另存为.txt

excel - 计算一年中剩余的发薪日

performance - 是否有用于在没有(慢速)COM API(互操作)的情况下操作 Excel .xlsb (BIFF12) 文件的库?