我是excel的新手,我需要从字符串中删除M,如果值在括号中,则将其设置为负数,否则将其设置为正数。但我只是设法做到了积极的,我怎么能写一个满足上述条件的函数呢?
If G1 value is (100M) then show -100
If G1 value is 100M then show 100
=LEFT(G1,LEN(G1)-1)
答案 0 :(得分:1)
=VALUE(IF(LEFT(G1,1)="(",SUBSTITUTE(LEFT(G1,LEN(G1)-2),"(","-"),LEFT(G1,LEN(G1)-1)))
答案 1 :(得分:0)
=IF(LEFT(G1)="(",-MID(G1,2,LEN(G1)-3),--LEFT(G1,LEN(G1)-1))
答案 2 :(得分:0)
我确信有很多方法可以做到这一点,但有基本的步骤。
首先,您需要使用// Fix document root to work with mod_alias (that maybe buggy)
$_SERVER['DOCUMENT_ROOT'] = str_replace($_SERVER['SCRIPT_NAME'], '', $_SERVER['SCRIPT_FILENAME']);
// The root of the project in the Document
$SRV['BASEDIR'] = substr( __FILE__,0, strrpos(__FILE__, "/lib"));
$SRV['WEBROOT'] = substr( __FILE__,0, strrpos(__FILE__, "/lib"));
$SRV['WEBROOT'] = str_replace($_SERVER['DOCUMENT_ROOT'],"",$SRV['WEBROOT']);
检查字母M
的字符串。如果字符存在,则返回该字符的位置;如果不存在,则返回=search("What",Where)
。
接下来我们需要评估在我们的搜索中是否找到了#VALUE
,这可以通过M
来完成,如果该字符,它将返回=IFERROR(value)
找不到。
最后,我们需要将它全部包含在true
语句中。我使用=IF(value, true, false)
将字符串中的值转换为数字
=VALUE(string)
方法的缺点是它没有检查=IF(IFERROR(SEARCH("M",A2)),-VALUE(LEFT(A2,LEN(A2)-1)),VALUE(A2))
是字符串中的最后一个字母,所以它会因M
之类的内容而失败,这可以通过检查来轻松测试和纠正对于具有100M100
且仅返回=SEARCH()
个=SEARCH()-1
字符的M的位置
像:
=LEFT(A1,SEARCH()-1)
如果A1为=IF(IFERROR(SEARCH("M",A1)),-VALUE(LEFT(A1,SEARCH("M",A1)-1)),VALUE(A1))
,则会返回100M100
-100
答案 3 :(得分:0)
我认为这更好
=VALUE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(G1,"M",""),")",""),"(","-"))
答案 4 :(得分:0)
不确定所有条件,但对于以下
(...)
如果是这种情况,那么简单地说:
=VALUE(SUBSTITUTE(G1,"M",""))
如果G1中的值不是数字,则表示您没有想要返回的内容。只需将上面的内容包含在IFERROR
函数中即可。