我有一个带有列模板和模板名称的Excel工作表,我必须在模板列中填入模板名称列中的部分字符串:
Template Template Name
This is String
String line contains data
This is Int
Int line contain data
int: in the String data
string: in the int data
Int: is empty or no string
我尝试了以下公式,但它给出了不同的结果:
=IF(ISNUMBER(SEARCH("string",A2)),"string",IF(ISNUMBER(SEARCH("int",A2)),"int",IF(ISNUMBER(SEARCH("int:",A2)),"int",IF(ISNUMBER(SEARCH("string:",A2)),"string"))))
B栏中公式给出的输出:
Template Template Name
This is String String
String line contains data string
This is Int int
Int line contain data int
int: in the String data string #it must be 'int'
string: in the int data int #it must be 'string'
Int: is empty or no string string #it must be 'int'
请让我知道必须更改哪些内容才能获得所需的输出。
答案 0 :(得分:1)
重新排列搜索顺序: 如果您首先搜索较长的字符串(使用':'),然后搜索没有':'的字符串,则结果应该是正确的。
=IF(ISNUMBER(SEARCH("string:",A2)),"string",IF(ISNUMBER(SEARCH("int:",A2)),"int",IF(ISNUMBER(SEARCH("int",A2)),"int",IF(ISNUMBER(SEARCH("string",A2)),"string"))))
答案 1 :(得分:0)
已编辑:使代码适合直接输入电子表格单元格(我之前想过的是VBA宏)
如果您希望第一次出现在“string”和“int”之间,请使用
=IF(IFERROR(SEARCH("int",RC1),10000)>IFERROR(SEARCH("string",RC1),10000),"String", "Int")"
如果您处理字符串中既没有“string”也没有“int”的情况,那么只需检查其中任何一个的出现