Excel剥离括号并显示其值

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

If G1 value is (100M) then show -100 If G1 value is 100M then show 100 =LEFT(G1,LEN(G1)-1) 

我确信有很多方法可以做到这一点,但有一些基本步骤。

  • 首先你需要用=search("What",Where)来检查你的string。 如果它存在,则返回该字符的位置;否则返回#VALUE

  • 接下来,我们需要评估是否在我们的search中find了M ,这可以通过=IFERROR(value)来完成,如果找不到字符,它将返回true

  • 最后,我们需要将其全部包装在=IF(value, true, false)语句中。 我正在使用=VALUE(string)来将=VALUE(string)的值转换为数字

=IF(IFERROR(SEARCH("M",A2)),-VALUE(LEFT(A2,LEN(A2)-1)),VALUE(A2))

一种方法的缺点是它不检查M是string中的最后一个字母,所以它会失败,像100M100 ,这可以很容易地testing和纠正通过检查M的位置=SEARCH()和只返回=SEARCH()-1字符=LEFT(A1,SEARCH()-1)

类似于: =IF(IFERROR(SEARCH("M",A1)),-VALUE(LEFT(A1,SEARCH("M",A1)-1)),VALUE(A1))

如果A1是100M100那么它会返回-100

更新:

我原本误读了缺less括号的问题。 安倍晋三和汤姆夏普已经正确地做到了这一点,所以我会更新我的修复我的错误。 在这种情况下,假定M和M对结果的符号是重要的,括号是多余的。 所以要纠正我的答案,我会做下面的事情

=if(IFERROR(search(")",G1)),-VALUE(right(left(G1,search(")",G1)-2),SEARCH(")",G1)-3)),value(LEFT(G1, LEN(G1)-1)))

 =VALUE(IF(LEFT(G1,1)="(",SUBSTITUTE(LEFT(G1,LEN(G1)-2),"(","-"),LEFT(G1,LEN(G1)-1))) 
 =IF(LEFT(G1)="(",-MID(G1,2,LEN(G1)-3),--LEFT(G1,LEN(G1)-1)) 

这是我认为更好

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

不知道所有的条件,但为以下

  • G1可能是数字有或没有M和(...)
  • 你总是想要返回数字,如果存在。

如果是这样的话,那么简单地说:

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

如果G1中的值是非数字的,你还没有指出你想要返回什么。 只需在IFERROR函数中包装上述内容即可。