“Double”嵌套If语句

时间:2014-07-11 11:03:13

标签: excel if-statement nested excel-formula

this示例中,我设法使嵌套的IF公式删除<和>,转换。如果有%符号,则乘以10.000。但是> 25.0字符串的文字加+1,但不会乘以10.000。

你能帮我理解什么是错的吗?

公式出现错误(欧洲逗号和点使用):

=IF(
   ISNUMBER(SEARCH("<";Sheet!B8));SUBSTITUTE(SUBSTITUTE(Sheet!B8;".";",");"<";"")/2;
   IF(ISNUMBER(SEARCH(">";Sheet!B8));SUBSTITUTE(SUBSTITUTE(Sheet!B8;".";",");">";"")+1;
   IF(E$4="%";Sheet!B8*10000;Sheet!B8)))

1 个答案:

答案 0 :(得分:0)

进行了一些更改,试试这个:

=IF(ISNUMBER(SEARCH("<", Sheet!$B8)), SUBSTITUTE(SUBSTITUTE(Sheet!$B8, "<", ""),".", ",")/2, IF(ISNUMBER(SEARCH(">", Sheet!$B8)), SUBSTITUTE(SUBSTITUTE(Sheet!$B8, ">", ""), ".", ",")+1)) * IF($E4 = "%", 10000, 1)

修改

我手头没看过你提供的代码,不好。试试下面的代码,如果它不是你想要的,请告诉我。我的建议是使用它,然后去FORMAT CELLS&gt; NUMBER&gt;使用1000分离器。

=((SUBSTITUTE(SUBSTITUTE(B5,"<",""),">","") + IFERROR((IF(SEARCH(">",B5)>0,1,0)),0)) / IFERROR(IF(SEARCH("<",B5)>0,2,1),1)) * IF($E$4="%",10000,1)

原因是通过替换“。”对于“,”,excel将其视为文本而您不能使用文本进行基本代数(即0,0001或25,0是文本,0.000 1和25.0是数字)。如果格式化为使用1000分隔符,则可以将值作为数字,并且仍然具有格式正确的单元格(例如,F6 = 181,000.00)。

<强> EDIT2:

=((SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(B2,"<",""),">",""), ".", ",") + IFERROR((IF(SEARCH(">",B2)>0,1,0)),0)) / IFERROR(IF(SEARCH("<",B2)>0,2,1),1)) * IF($E$1="%",10000,1)