Excel:用公式中的数字replacestring?

我的一列中有颜色的string,比如红色,紫色等等。 我想用相应的数字replace那些颜色。 红色变成1,紫色变成2,依此类推。

这不是那么难,我用替补,像这样:

SUBSTITUTE(E3;"red";"1") 

现在的问题是有些列有2个或更多的颜色,如“红紫色”,所以我尝试使用:

 SUBSTITUTE(E3;"red";"1")&SUBSTITUTE(E3;"purple";"2") 

这导致我的列中的值看起来像1red,这是我添加的每个&SUBSTITUTE附加的行的颜色。 如果我添加了另一种颜色,就像那样

 SUBSTITUTE(E3;"red";"1")&SUBSTITUTE(E3;"purple";"2")&SUBSTITUTE(E3;"green";"3") 

它会变成1。

我该如何解决这个问题? 我想用相应的数字replace每个颜色的string。

谢谢!

尝试这个

 =SUBSTITUTE(SUBSTITUTE(E3,"Purple","2"),"Red","1") 

请考虑以下更紧凑的解决scheme(假设testing单元为A2 ):

  • 使用MATCH :如果您需要返回sorting的数字,如1,2,3 … – 这个公式将完成这项工作:

     =IFERROR(MATCH(A2,{"Red","Green","Blue"},0),"UNKNOWN COLOR") 

你也可以在返回的值上加一个乘数/常数。 string顺序的顺序等于返回的数字。

  • 使用VLOOKUP :如果您需要一些定义的返回值集合 – 在2-dim数组常量中定义它们:

     =IFERROR(VLOOKUP(A2,{"Red",10;"Green",20;"Blue",30},2,0),"UNKNOWN COLOR") 

对于这个例子10,20和30将被返回。

这两个公式都包含未指定颜色的error handling。

共享示例文件: https : //www.dropbox.com/s/77aj1vl6c5gek5c/ColorsLookup.xlsx

PS我不知道正确的数组维度分隔符,因为我的本地设置使用不同的,但在示例文件公式工作正常。