2

我的意思是,例如在 A1:123b 中,最好将 123 放在 B 中,将“b”放在 C 列中。有什么功能吗?

4

2 回答 2

6

如果数字总是在开头,那么对于数字:

=LOOKUP(9.9E+307,--LEFT(A1,ROW(INDIRECT("1:20"))),LEFT(A1,ROW(INDIRECT("1:20"))))

对于字母:

   =MID(A1,LEN(LOOKUP(9.9E+307,--LEFT(A1,ROW(INDIRECT("1:20"))),LEFT(A1,ROW(INDIRECT("1:20")))))+1,20)

公式中的“20”只需要一个大于您可能正在处理的最长字符串长度的数字。

于 2013-10-14T00:21:25.723 回答
1

如果只想获取数值的数字部分(假设在A1中),使用数组公式(输入公式后control-shift-enter):

=VALUE(LEFT(A1,MIN(IFERROR(SEARCH({"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"},A1),LEN(A1)))-1))

该公式执行以下操作:

  • 对于每个字母,找到字符串中字符的第一个索引
  • 如果未找到该字符串,则假定该值为长度(未找到)
  • 找到索引的最小值
  • 取从第一个字符开始并在第一个字母之前结束的子字符串
  • 获取文本的数值(此时应该是全数字)

要获取文本部分:

=RIGHT(A1,LEN(A1)+1-MIN(IFERROR(SEARCH({"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"},A1),LEN(A1))))
于 2013-10-11T03:05:18.503 回答