0

我目前正在使用以下逻辑在 excel 中执行“if then”循环。

检查值

1. S9(7) C3
2. S9(11)V9(2) C3
3. X(3)

我用过的逻辑

=IF(ISNUMBER(SEARCH("S9",D1,1)),CONCATENATE("s370fpd",5,".","0"),CONCATENATE("$ebcdic",5,"."))

现在这里的问题是S9可能有两种类型。在第一个,即S9(7) C3 中,它工作正常,但对于第二个,即S9(11)V9(2) C3,我必须将“s370fpd”与 V9 括号内的值连接起来,在这种情况下为 2。所以它会变成"s370fpd5.2"

由于括号内的值是动态的,因此逻辑必须在其中搜索。我不确定它将如何检查然后附加它。

4

1 回答 1

2

我不确定你到底想做什么,但尽可能多地保留你现在拥有的东西,我会使用这个:

=IF(ISNUMBER(SEARCH("S9",D1,1)),CONCATENATE("s370fpd",5,".",IFERROR(MID(D1,SEARCH("V9",D1)+3,SEARCH(")",D1,SEARCH("V9",D1))-SEARCH("V9",D1)-3),"0")),CONCATENATE("$ebcdic",5,"."))

"0"

IFERROR(MID(D1,SEARCH("V9",D1)+3,SEARCH(")",D1,SEARCH("V9",D1))-SEARCH("V9",D1)-3),"0")

这就是 . 之后括号之间的内容V9

在我看来,您也可以直接变成 和into CONCATENATE("$ebcdic",5,"."),和/或用来使事情变得更短一些,但这仅取决于您在问题中提出的内容:"$ebcdic5."CONCATENATE("s370fpd",5,"."CONCATENATE("s370fpd5."&

=IF(ISNUMBER(SEARCH("S9",D1,1)),"s370fpd5."&IFERROR(MID(D1,SEARCH("V9",D1)+3,SEARCH(")",D1,SEARCH("V9",D1))-SEARCH("V9",D1)-3),"0"),"$ebcdic5.")
于 2013-11-05T19:39:33.760 回答