Excel 2010 在 IF 函数中搜索文本 - 单独的单元格数据

标签 excel if-statement excel-formula excel-2010

程序: 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))))))
当我试图区分第一个、中间、最后一个(电子邮件)时,我也遇到了这样的名字:W. H. Minder (m@e.net)

执行多个步骤是否更容易?

先感谢您。

最佳答案

由于所有的变化,解析名称并不简单。正如您所展示的那样,您的数据存在一个问题,它将测试名字是否真的是像 Mr Ms 等这样的头衔。

我的偏好是使用 VBA 和正则表达式来执行此操作,但这里有一些您可以使用的公式:

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))

名字将是第一个“单词”,因此您可以测试它是先生还是夫人或您不想返回的东西。

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

关于Excel 2010 在 IF 函数中搜索文本 - 单独的单元格数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21442485/

相关文章:

excel - 禁止在 Excel 工作表 (VBA) 中调整按钮大小

excel - Excel 能否将 CSV 中的 URL 解释为超链接?

excel - If 语句公式破坏 VBA 循环代码

scala - 在 Scala/Spark 中合并多个连续条目

Android Studio - 条件总是正确的?

excel - 在 Excel 中使用 LAMBDA 递归将一组数字相加

java - POI SAX 日期数据类型

excel - 使用 openpyxl 将 Excel 单元格背景主题颜色设置为十六进制

excel - 结果数组是Excel中两个数组的减法

excel - 如何将 Excel M365 中多维动态数组的一部分与特定值的条件求和?