= IF(ISNUMBER(SEARCH … 1和11之间的差异

我正在尝试将excel中的一列数字转换为多个,具体取决于内容。

例如表1包含1列,其中包含1到11之间的数字,用逗号分隔。 表2应包含11列,其中1或0取决于表1中的数字。

目前我正在使用下面的公式:

=IF(ISNUMBER(SEARCH("1",A2)),1,0) 

下一列包含以下内容:

  =IF(ISNUMBER(SEARCH("2",A2)),1,0) 

一路到11

  =IF(ISNUMBER(SEARCH("11",A2)),1,0) 

但是,这个问题是,find引用1的代码也find对11的引用。是否有可能写出一个公式,可以告诉差异,如果我有以下表1中:

  2, 5, 11 

表2中的第一列没有列出1

谢谢。

使用,只用逗号列表:

 =IF(ISNUMBER(SEARCH(",1,", ","&A2&",")),1,0) 

如果列表以逗号分隔, (逗号+空格):

 =IF(ISNUMBER(SEARCH(", 1,", ", "&A2&",")),1,0) 

在每个逗号之前或之后将处理0 … n个空格的LS_dev答案的版本是:

 =IF(ISNUMBER(SEARCH(", 1 ,",", "&TRIM(SUBSTITUTE(A2,","," , "))&" ,")),1,0) 

SUBSTITUTE确保每个逗号前后至less有一个空格,TRIM用一个空格replace多个空格,所以TRIM函数的结果在每个逗号前后都只有一个空格。

如何使用SUBSTITUTEfunction将所有“11”更改为罗马数字“XI”,然后再进行search:

 =IF(ISNUMBER(SEARCH("1",SUBSTITUTE(A2, "11", "XI"))),1,0) 

如果你想消除“11”的情况,但这是基于硬编码值,应该有一个更聪明的解决scheme。

= IF(ISNUMBER(SEARCH(AND( “1”,NOT( “11”)),A2)),1,0)