如何将初始部分单元格1与所有单元格2连接起来并以单元格1的剩余部分结束?

时间:2017-03-02 11:18:51

标签: excel concatenation

问题

在Excel中,我有三个列,其中包含旧政府区域的名称。这些已标准化,以显示区域的主要名称和旧名称在单独的列中。现在,我想使用concatenate或任何其他合适的函数在单独的列中自动显示其全名。

布局如下:

  • 列表项
  • 中校。 E:地区的正式名称
  • 中校。 F:区域的旧名称
  • 中校。 G:打印在原始文档上的区域全名。这包含了我对连接的期望。

有些名称添加了genitive-s是一个问题,如下例所示:

     E                              F           G
2    Hobøl Thinglag                 Hobøle      Hobøl (Hobøle) Thinglag
8    Vaalers Thinglag                           Vaalers Thinglag
5    Rygge Thinglag                 Ryggihof    Rygge (Ryggihof) Thinglag
60   Skjebergs Thinglag             Skjaberg    Skjebergs (Skjaberg) Thinglag
108  Spydebergs Thinglag            Spjoteberg  Spydebergs (Spojteberg) Thinglag
220  Skedsmo og Nittedals Thinglag              Skedsmo og Nittedals Thinglag

我想做什么

我需要在col中识别名称的第一部分。 E,添加col中的内容。括号中的F(如果有的话),然后添加col中剩下的内容。 E.某种形式的left函数似乎是合适的,但我不知道在不计算符号数时如何识别单词的结尾。

可能是right函数更合适,如第220行所示;在创建本文件之前的某个时间段可能会加入一个政府领域;可以看出,分隔符将是“Thinglag”(带有空格)。换句话说,单元格1的第一部分(E2:E)可能包含多个需要转置的单词。以上面的行220为例,如果在F220中有条目(让我们说'SkeidsmoogNøttedal'),G220应该是'Skedsmo og Nittedals(SkeidsmoogNøttedal)Thinglag'。

要插入F2的示例公式:

=CONCATENATE(LEFT[word in E2];" (";F2;") "; [the rest of E2])

1 个答案:

答案 0 :(得分:2)

试试这个:

IF(F2="",E2,CONCATENATE(LEFT(E2,SEARCH(" T",E2))&"("&F2&")"&MID(E2,SEARCH(" T",E2),Len(E2)-SEARCH(" T",E2)+1)))

它首先检查是否填充了F2以查看字符串是否需要连接,然后如果它们执行,则执行以下操作:

  1. 使用E2
  2. 查找SEARCH(" T",E2)中第一个空格加'T'的位置
  3. 它使用此信息使用LEFT(E2,SEARCH(" T",E2))
  4. 提取字符串中的第一个单词
  5. 使用F2
  6. 将第一个单词与&"("&F2&")"&的括号和值连接起来
  7. E2中字符串的剩余单词是使用MID(E2,SEARCH(" T",E2),Len(E2)-SEARCH(" T",E2)+1)获得的,length(dir(path="D:/Shivi/R Project", all.files = TRUE)) 定位第一个空格的位置加上字符串中的“T”,然后获取其后的其余单词。