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