我的数据是* _ *格式。 我想申请一个条件条款。 IF(A1 = * _ *,1,0)。 不起作用。 任何其他方式来做到这一点?
我的数据是_的forms(例如,Normal_abcd_2_80_1)。 我想申请一个条件条款。 IF(A1 = *_*_*_*_*,1,0)
。 不起作用。 任何其他方式来做到这一点?
你可以使用这个公式只有4 _
(而不多或less)由其他字符saperated:
=IF(OR(ISERROR(FIND("_",A1,FIND("_",A1,FIND("_",A1,FIND("_",A1,1)+2)+2)+2)),NOT(ISERROR(FIND("_",A1,(FIND("_",A1,FIND("_",A1,FIND("_",A1,FIND("_",A1,1)+2)+2)+2)+2))))),0,1)
如果你想要更多_
,只需将它们添加到嵌套的FIND
。 但是,这不会在一行中处理多个_
,如上面的单元格B5
所示。
—————-
这是一个更乏味但更精确的方法。 我会用10个帮助栏来解释它,但是你也可以将它们全部打包成一个非常长的不可读的公式。 想法是将string分成10份,分别检查每个部分,然后查看所有检查是否正确。 所以这里是逐列:
- string是否以
_
开头?=NOT(LEFT($A2,1)="_")
- 第一个
_
在哪里?=FIND("_",$A2,1)
- 第一个
_
之后的下一个charachter是不是_
?NOT(MID($A2,D2+1,1)="_")
- 下一个
_
在哪里?FIND("_",$A2,D2+2)
- 下一个
_
之后的下一个charachter是不是_
?NOT(MID($A2,F2+1,1)="_")
- 下一个
_
在哪里?FIND("_",$A2,F2+2)
- 下一个
_
之后的下一个charachter是不是_
?NOT(MID($A2,H2+1,1)="_")
- 下一个
_
在哪里?FIND("_",$A2,H2+2)
- 下一个
_
之后的下一个charachter是不是_
?NOT(MID($A2,J2+1,1)="_")
- 还有其他
_
?FIND("_",$A2,J2+2)
然后你使用公式来testing所有的10个检查是否正确:
=IF(NOT(ISERROR(AND(B2,C2,D2,E2,F2,G2,H2,I2,J2,ISERROR(K2)))),IF(AND(B2,C2,D2,E2,F2,G2,H2,I2,J2,ISERROR(K2)),1,0),0)
现在,不是使用10列,而是使用写入的公式replace上面公式中的每个单元格引用。 我只是觉得这样会更清楚;)