【问题标题】:Excel: Replace strings with numbers in a formula?Excel:用公式中的数字替换字符串?
【发布时间】:2013-02-07 08:57:14
【问题描述】:

我的其中一列中有颜色字符串,例如红色、紫色等。我想用相应的数字替换这些颜色。红色变为 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")

它会变成 1redred。

我该如何解决这个问题?我想用相应的数字替换每个颜色字符串。

谢谢!

【问题讨论】:

    标签: excel excel-2010


    【解决方案1】:

    试试这个

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

    【讨论】:

    • 那么对于 10 种颜色,我有 10 个嵌套的 SUBSTITUTES?
    【解决方案2】:

    请考虑以下更紧凑的解决方案(假设测试单元为A2):

    • 使用 MATCH:如果您需要返回 1、2、3 之类的有序数字...... - 这个公式可以完成这项工作:

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

    您也可以将乘数/常数添加到返回值。字符串序列中的顺序等于返回的数量。

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

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

    对于本例,将返回 10、20 和 30。

    这两个公式都包含对未指定颜色的错误处理。

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

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

    【讨论】:

      猜你喜欢
      • 2012-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-14
      • 1970-01-01
      • 2011-03-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多