我有一个包含两个名称的列,我想将其提取到两个单独的列surname1
和surname2
中(我不需要名称和首字母(例如{{1} }}))。
该列的示例性内容是:
N.
-Lopez和Lorenzi是我们正在寻找的这两个。
我的情况有什么好处,第一个名字总是在第一个点(AwyeEaef2012 MS101 N.Lopez-O.Lorenzi.txt
)之后,在破折号(.
)之前结束,第二个名字恰好在第二个点之后。在第三个点和-
(txt
)之前结束。
我知道如何编写正则表达式并使用.txt
检查该列是否包含某些特定姓氏但不相反 - 如何读取姓氏并将其写入两个新列。
该列的几行如下所示:
LIKE
所以模式就像我提到的那样WyeEaef MN2014 MS401 N.Lopez-O.Lorenzi.txt
AwyufEQ WCH2014 OS401 N.Lorenzi-O.Lopez.txt
THAFa5u WCH2014 LS107 N.Larry-O.Lolly.txt
其中*最多30个字符的大写字母和小写字母和数字
可以用这种方式接近:其他的话我们需要把它分成子串,用点除以第一个子串是浪费,第二个没有两个最后的字符(一个破折号和大写字母,例如-O)是第一个名字,第三个子串是第二个名称,第四个是另一个废物(以前的文件格式)。
我想要一个三列的输出: initialColumn,firstName,secondName
答案 0 :(得分:1)
我在Excel中作为公式编写的解决方法,我个人不喜欢,但可能对将来有用。
=MID(A1;FIND(".";A1;1)+1;FIND(".";A1;FIND(".";A1;1)+1)-FIND(".";A1;1)-3)
我很惊讶Excel可以在眨眼间处理约0.5百万条记录。