Excel剥离括号并显示其值

时间:2015-07-19 18:10:02

标签: excel excel-formula

我是excel的新手,我需要从字符串中删除M,如果值在括号中,则将其设置为负数,否则将其设置为正数。但我只是设法做到了积极的,我怎么能写一个满足上述条件的函数呢?

If G1 value is (100M) then show -100

If G1 value is 100M then show 100

=LEFT(G1,LEN(G1)-1)

5 个答案:

答案 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

UPDATE:

我最初误读了错过括号的问题。 Abe Gold和Tom Sharpe都正确地做了这个,所以我会更新我的修复我的错误。在这种情况下,假设和M对结果的符号很重要,括号是多余的。所以为了纠正我的回答,我会做以下

-100

答案 3 :(得分:0)

我认为这更好

 =VALUE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(G1,"M",""),")",""),"(","-"))

答案 4 :(得分:0)

不确定所有条件,但对于以下

  • G1可能是包含或不包含M和(...)
  • 的数字
  • 您总是希望返回该号码。

如果是这种情况,那么简单地说:

=VALUE(SUBSTITUTE(G1,"M",""))

如果G1中的值不是数字,则表示您没有想要返回的内容。只需将上面的内容包含在IFERROR函数中即可。