我正在导入Excel文件,并提取这些文件中的公式以执行各种测试和计算,这是Excel无法完成的。但是,为了做到这一点,我需要将Excel函数转换为Mathematica可以使用的函数。所有这些公式都非常大(平均200多页),因此手动转换不是一个选项。这就带来了我的当前问题。 我需要转换的某些公式包含Excel函数内的括号,导致出现如下情况:
IF(IF((A2+B2)*(C1+2^D1)<>7,"A","B")="A",C8,D8)*2/IF(G17*G2=G1,IF(EXP(K9)=K10,K11,K12))*EXP(IF(H22+H23=213,A1,B1))
我需要将IF和EXP函数中的所有()转换为[],而不改变像(A2+B2)这样的部分。 目标是将其转换为:
IF[IF[(A2+B2)*(C1+2^D1)<>7,"A","B"]="A",C8,D8]*2/IF[G17*G2=G1,IF[EXP[K9]=K10,K11,K12]]*EXP[IF[(H22+H23)=213,A1,B1]]
有没有正则表达式可以匹配这些情况?
(.*?\\(.*?\\)(.?)*?)*?
这导致了一些问题,它没有匹配到应该匹配的部分,或者匹配了不应该匹配的东西。 - Soviras