我有一系列值,例如:
10RP
2.5R
5R
7.5R
10R
2.5YR
5YR
我想根据此表将字符串部分转换为数字:
0 R
10 YR
20 Y
30 GY
40 G
50 BG
60 B
70 PB
80 P
90 RP
然后我要创建两列,以便:
2.5YR
成为:
2.5 10
在第三列中,我将两个数字加在一起。
可以仅使用公式来完成此操作吗?如果可以的话,我想避免使用VBA。
谢谢。
答案 0 :(得分:3)
这是另一种方法。
seq
是定义的名称,指的是数组常量={1,2,3,4,5}
如果您的数字可能包含五个以上的字符,则只需适当地扩展常数即可。
Number part: =LOOKUP(9E+307,--MID(A1,1,seq))
Letter portion converted to number:
=VLOOKUP(MID(A1,LOOKUP(2,1/ISNUMBER(-MID(A1,1,seq)),seq)+1,9),$F$1:$G$10,2,FALSE)
您的表格在F1:G10
中,并且位置颠倒,因此字母在第一列中
答案 1 :(得分:0)
这可能不是最有效的,但应该可以工作
=IFERROR((LEFT(F3,LEN(F3)-2)+VLOOKUP(RIGHT(F3,2),$A$3:$B$12,2,0)),
(LEFT(F3,LEN(F3)-1)+VLOOKUP(RIGHT(F3,1),$A$3:$B$12,2,0)))
在您的查找表是A3:B12的地方,最左列中的字母 在单字母组合之前检查两个字母组合。