在Excel公式中按顺序用数字替换字母

时间:2019-02-06 10:12:37

标签: excel excel-formula

我想基于另一列按顺序列出钻孔的列进行更新,更新需要替换序列中的一个字符,例如A = 0,B = 1,C = 2等。有没有办法写一个很大的IF / Then类型公式呢?

我尝试了替换公式,但是一次只能更新一个字母。

在下面的示例中;使用Hole_ID(P列)数据,可以得到所需的Hole_ID_2(R列)。

enter image description here

任何帮助,我们都会感激

3 个答案:

答案 0 :(得分:1)

只要要替换的所有ID都具有相同的结构(长度为10个字符,并在位置8处替换字母),则可以使用ANSI获得字母的CODE代码,并然后将该代码计算为适当的数字。

这将避免许多嵌套的SUBSTITUTE函数。

您的示例:

enter image description here

向下R3的公式:

=LEFT(P3,7)&CODE(MID(P3,8,1))-65&RIGHT(P3,2)

答案 1 :(得分:0)

您是否考虑过replace()函数?

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A3,"a",1),"b",2),"c",3)

假设数据从A3单元格开始。

enter image description here

答案 2 :(得分:0)

只需给您另一个选择:

=SUBSTITUTE(RIGHT(P3,LEN(P3)-1),MID(P3,MID(1,ISERROR(VALUE(MID(RIGHT(P3,LEN(P3)-1),ROW(INDIRECT("1:"&LEN(P3))),1)))*1,0)+1,1),CODE(MID(P3,MATCH(1,ISERROR(VALUE(MID(RIGHT(P3,LEN(P3)-1),ROW(INDIRECT("1:"&LEN(P3))),)))*1,0)+1,1))-65)

它看起来有点吓人,但它只是替换了字符串中找到的第一个非数字字符,而不考虑第一个N。它是一个数组公式,因此应这样输入!

它将变得更加动态,因为放置非数字字符无关紧要。