Excel 2010在IF函数中search文本 – 单独的单元格数据

程序: Excel 2010

要求:一种方法来提取名字,姓氏,电子邮件到单个单元格。

数据:我的数据有一个原始的“脏数据”表,这是原始的,一塌糊涂。 我用一个简单的=IF(A7="Order",1,"")来整理它,然后其余的单元格如下: =IF($C7=1,B13,"")

例:

  (A) | Orig2 | Header? (C) | NameAll (K) | Price | ---------------------------------------------------------------------------------------- Order | Ms Admin (e@m.com) | =IF(A7="Order",1,"") | =IF($C7=1,B13,"") | =IF($C7=1,B5,"") Order | Mr Joe (e@m.com) | =IF(A8="Order",1,"") | =IF($C8=1,B14,"") | =IF($C8=1,B6,"") Order | Ms Fred (e@m.com) | =IF(A9="Order",1,"") | =IF($C9=1,B15,"") | =IF($C9=1,B7,"") 

结果是:

 (A) | Orig2 | Header? (C) | NameAll (K) | Price | ------------------------------------------------------------------------ Order | Ms Admin (e@m.com) | 1 | Ms Admin (e@m.com) | 13.99 Order | Mr Joe (e@m.com) | 1 | Mr Joe (e@m.com) | 15.99 Order | Ms Fred (e@m.com) | 1 | Ms Fred (e@m.com) | 17.99 

工作之后,我已经复制单元格的值,然后在我的工作表上“复制/值”,然后我可以在(U7)使用以下(从()之间提取电子邮件)
=IFERROR(MID(K7,(SEARCH("(",K7)+1),((SEARCH(")",K7)-(SEARCH("(",K7)+1)))),"")

我想要做的就是从数据移动开始,所以我可能会错过完全复制旧的到新的数据提取的步骤

试过: 失败
=IFERROR($C7=1,B13(MID(B13,(SEARCH("(",B13)+1),((SEARCH(")",B13)-(SEARCH("(",B13)+1))))))

当我试图分开第一,中间,最后(电子邮件)的时候,我也会忘记一个名字,例如:WH Minder(m@e.net)

我经历了几个步骤才更容易?

先谢谢你。

parsing名称并不简单,因为所有的变化。 您所看到的数据的一个问题是testing,看看名字是否真的像Ms先生等

我的首选是使用VBA和正则expression式来做到这一点,但这里有一些你可以玩的公式:

 Email: =MID(TRIM(A1),FIND("(",TRIM(A1))+1,FIND(")",TRIM(A1))-FIND("(",TRIM(A1))-1) First Name: =LEFT(TRIM(A1),FIND(" ",TRIM(A1))-1) Middle Name: =IF(LEN(TRIM(A1))-LEN(SUBSTITUTE(A1," ",""))<>3,"",LEFT(MID(TRIM(A1),FIND(" ",TRIM(A1))+1,99),FIND(" ",MID(TRIM(A1),FIND(" ",TRIM(A1))+1,99))-1)) Last Name: =TRIM(RIGHT(SUBSTITUTE(TRIM(LEFT(A1,FIND("(",A1)-1))," ",REPT(" ",99)),99)) 

名字将是第一个“单词”,所以你可以testing,看看先生或夫人或你不想返回的东西。

当且仅当有三个名字才会返回中间名,但是可以重写中间名以返回除了名字和姓氏之外的所有名字