= 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函数的结果在每个逗号前后都只有一个空格。
如何使用SUBSTITUTE
function将所有“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)