Excel如何判断数据中包含 指定内容,并将指定内容增加到新列中

Excel 中现在有批号,名称,数量,日期,仓库 几个 字段
其中包含大量数据,现在需要根据数据内容进行分组
比如:
如果批号中包含(X) 则此类数据为 X类
如果批号中包含(O) 则此类数据为 O类
如果批号中包含(T) 则此类数据为 T类
如果批号中不包含以上内容 则此类数据为 其它类

如果仓库中包含(OK),则此类数据为 确认
如果仓库中包含(ERR),则此类数据为 问题
如果仓库中不包含以上, 则此类数据为 待确认
判断之后,在Excel中增加一个字段 --- 类型
然后,将 判断好的类型 对应填充的每条记录中。。
其中,如果数据符合多个条件,按从上到下的顺序判断,就是其类型为最先判断的类型
比如批号既包含(X),仓库为(OK), 则根据批号判断,类型为 X类
如图。。

第1个回答  推荐于2016-03-02
1、建议把类别与是否确认分开两列:
2、实现方法如下:
使用
FIND(find_text,within_text,start_num)
Find_text 是要查找的文本。
Within_text 是包含要查找文本的文本。
Start_num 指定开始进行查找的字符。within_text 中的首字符是编号为 1 的字符。如果忽略 start_num,则假设其为 1。

返回:第几个字符,如果找不到,会返回#VALUE

ISERROR:
可以进行错误判断

根据你的情况
=IF(ISERROR(FIND("(X)",B2,1)),"其他","X类")
进行嵌套
=IF(ISERROR(FIND("(X)",B2,1)),IF(ISERROR(FIND("(T)",B2,1)),IF(ISERROR(FIND("(O)",B2,1)),"其他","O类"),"T类"),"X类")追问

這樣是固定的B2,如何實現動態全部都可以實現
因爲數據是很多的

追答

1、下拉,公式中B2会变成B3、B4...
会自动判断其他数据。

2、你还可以把仓库列中的(OK),(ERR)嵌套在公式中,实现你所要求的。
=IF(ISERROR(FIND("(X)",B2,1)),IF(ISERROR(FIND("(T)",B2,1)),IF(ISERROR(FIND("(O)",B2,1)),IF(ISERROR(FIND("(OK)",F2,1)),IF(ISERROR(FIND("(ERR)",F2,1)),"其他","问题"),"确认"),"O类"),"T类"),"X类")

是指这个吗?

追问

你好,我還想問一下,如果條件裏面包含或者 還有並且應該怎樣呢?
在2。的基礎上
包含”(C)”或”( C )”或”(C )”或( C)”

開頭以”?-“且不包含”(“ >
開頭以”??-“且不包含”(“ >

這樣的條件應該怎樣處理呢?
蔴煩你了

追答

方法一:使用逻辑判断。
=IF(AND(ISERROR(FIND("(ERR)",F2,1)),ISERROR(FIND("(ERR)",F2,1)),ISERROR(FIND("(ERR)",F2,1)),ISERROR(FIND("(ERR)",F2,1))),"其他","问题")

方法二:转为半角判断
=IF((ISERROR(FIND("(err)",asc(F2),1))),"其他","问题")

没明白,是否能举例说明以下问题:
開頭以”?-“且不包含”(“ >
開頭以”??-“且不包含”(“ >

追问

包含”(C)”或”( D )”或”(E )”或( F)” 這個就是想問一下 在那個嵌套的公式裏面怎樣用or加上條件

開頭以”?-“且不包含”( >  這個就是說數據用?-開頭 並且不包含括號  如?-ABC ??-A
這個樣子 也就是條件裏面要加上判斷開頭爲前3位爲??- 和 前2位爲?- 的

追答

?号是通配符吗?

可以使用SEARCH函数
而不用find函数

SEARCH函数:使用通配符,包括问号 (?) 和星号 (*)。问号可匹配任意的单个字符,星号可匹配任意一串字符。如果要查找真正的问号或星号,请在该字符前键入波形符 (~)。但不能区分大小写
FIND函数区分大小写,但不支持通配符

追问

不是通配符,就是個問號。。

請問應怎樣使用 or 以及 and ...
把剛剛所說的條件加上去??

追答

=IF(ISERROR(FIND("??-",F2,1)),0,IF(FIND("??-",F2,1)=1,IF(ISERROR(FIND("(",ASC(F2),1)),0,IF(FIND("(",ASC(F2),1)>3,1,0)),0))

or(条件1,条件2,条件3......)
and(条件1,条件2,条件3......)
例子:
=IF(AND(ISERROR(FIND("(ERR)",F2,1)),ISERROR(FIND("(ERR)",F2,1)),ISERROR(FIND("(ERR)",F2,1)),ISERROR(FIND("(ERR)",F2,1))),"其他","问题")
中间有4个条件,与的关系

假如条件比较复杂,建议增加一些中间列,可以隐藏起来,否则公式很容易出错。

本回答被提问者采纳
第2个回答  2011-04-07
H2=LEFT(SUBSTITUTE(MID(B2,FIND("(",B2&"(")+1,2),")","类")&SUBSTITUTE(SUBSTITUTE(MID(F2&"(其它",FIND("(",F2&"(")+1,9),"OK)","确认"),"ERR)","问题"),2)追问

這樣是固定的B2,H2,如何實現動態全部都可以實現
因爲數據是很多的

追答

你下拉就可以了

追问

若要增加一個條件
開頭以”?-“且不包含(
就是 增加一個判斷, 開頭的前2位爲 問號? + 一個橫線- 並且不包含左括號(
這樣的條件應該怎樣寫

追答

再上附件描述清楚。

第3个回答  2011-04-07
假如ABC(X) 在"B2" 里 在"H2" 输入公式:
=IF(ISNUMBER(SEARCH("(?)",B2,LEN(B2)-2)),MID(B2,LEN(B2)-1,1)&"类",IF(RIGHT(F2,4)="(OK)","确认",IF(RIGHT(F2,4)="ERR)","问题","其它")))
相似回答