如何使用SUBSTITUTE()获取一系列值?

时间:2016-12-13 04:43:40

标签: excel excel-formula

假设有多个这样的值:

Address
123 Fake Street, Philadelphia, pa
456 Real Street, Houston, tx
789 Soho Street, New York, ny

最初,我以为我可以创建一个查找表来搜索“pa”,“tx”和“ny”,这样它们就会变得更高:“PA”,“TX”,“NY”。< / p>

理想情况下,我想编写一个在新列中具有所有上限值的函数。最初,这样的事情:

=substitute(O33,Q31:Q35,R31:R35)

Q31:Q35是较低状态的范围,R31:R35是较高状态。但是,这并不是我想要的方式。有没有办法在没有硬编码的情况下替换小写状态?我认为查找表会起作用,但事实并非如此。

我希望最终结果是这样的:

Address                                     New Address
123 Fake Street, Philadelphia, pa           123 Fake Street, Philadelphia, PA
456 Real Street, Houston, tx                456 Real Street, Houston, TX
789 Soho Street, New York, ny               789 Soho Street, New York, NY

不对新地址的每一行执行此操作:

substitute(A2, "pa", "PA")
substitute(A3, "tx", "TX")
substitute(A4, "ny", "NY")

3 个答案:

答案 0 :(得分:1)

查找表应该可以工作,尝试使用vlookup。你想从地址中取出2个正确的字符并使用它作为查找值来返回大写版本,大致如下(假设A1中的地址):

new value = left(A1, len(A1)-2) & vlookup(right(A1, 2), Q31:R35, 2, false)

如果没有复杂的映射,即你总是只是将后两个字符大写,你可以这样做:

new value = left(A1, len(A1)-2) & upper(right(A1, 2))

答案 1 :(得分:1)

如果您的唯一目标是用大写字母替换后两个字符,则可以使用以下公式:

= LEFT(A1,LEN(A1)-2)&UPPER(RIGHT(A1,2))

它会修剪文本以排除右边的两个字符,同时在右边两个字符的第二个文本字符串中将其大写。然后将两个字符串连接为一个。

使用SUBSTITUTE的麻烦在于它将用大写字母替换所有出现的后两个字符。因此,“纽约纽约有趣街123号”将变为“纽约纽约有趣街123号”。

答案 2 :(得分:0)

尝试一个数组公式。

在A2中,直到A4,你有你的地址

123 Fake Street, Philadelphia, pa
456 Real Street, Houston, tx
789 Soho Street, New York, ny

在Q31:Q33和R31:R33,你有:

pa  PA
tx  TX
ny  NY

在E2中,输入以下公式:

=SUBSTITUTE(A2:A4;Q31:Q33;R31:R33)

在公式栏中键入CTRL SHIFT和ENTER。 您将在公式中看到{},如下所示:

{=SUBSTITUTE(A2:A4;Q31:Q33;R31:R33)}

然后在E3和E4中复制公式。