Excel CONCATENATE问题

我在同一个字段中有一列姓和名(史密斯约翰)

我想创build一个ID为每个名称与下面的逻辑前两个字母的姓氏,名字的前两个字母+一个数字开始001。理想情况下,这可能无法在Excel中,我希望它自动递增数字如果列中有一个。

任何人有任何build议?

这是一个潜在的解决scheme:

=UPPER(CONCATENATE(LEFT(A1,2),MID(A1,SEARCH(" ",A1)+1,2),TEXT(ROW(B1),"000"))) 

更详细地说,我假设名称在列A中,并且ID在列B中。顶级转换为大写。 其余的部分:

 CONCATENATE(LEFT(A1,2), #first two letters of last name MID(A1,SEARCH(" ",A1)+1,2), #first two letters of first name TEXT(ROW(B1),"000") #ID number with leading zeroes ) 

要find第一个名字,需要在第一个空格之后。 这不是万无一失的,因为有些人的姓氏中有空格。

要生成身份证号码,只需要当前的行号。 不是一个很好的解决scheme,但我不能提出更具体的build议,不知道你的需求是什么。

自动编号可以通过统计ID已经存在的次数来完成。 如果你可以留出两列(如果你不想保留它们,你可以隐藏它们),下面是一个解决scheme,它会产生如下表格:

       A B C D
  1名称ID开始ID结束ID
  2约翰·史密斯JOSM 1 JOSM001
  3 John Smash JOSM 2 JOSM002
  4 Jacob Black JABL 1 JABL001 
  • 公式B2: =UPPER(CONCATENATE(LEFT(A2,2),MID(A2,SEARCH(" ",A2)+1,2)))
    这将采用名称列中第一个和第二个单词的前两个字母。 SEARCH(" ",A2)+1findA2中第一个空格之后的第一个字符的索引。

  • 公式C2: =COUNTIF(B$2:B2,UPPER(CONCATENATE(LEFT(A2,2),MID(A2,SEARCH(" ",A2)+1,2))))
    这将计数直到并包括该行的ID(从上面的公式计算)的数量。 请注意COUNTIF范围的绝对起始行,这使得这成为可能。

  • D2中的公式: =CONCATENATE(B2,TEXT(C2,"000"))
    这将采用ID的两个部分,将数字格式化为三位数字并放在一起。

然后只需复制(填充)公式。

尝试像这样:

 =MID(A1,1,2)&MID(A1,FIND(" ",A1)+1,2)&TEXT(ROW(),"000") 

如果A1 = Smith John,那么B1 = SmJo001