0

我希望能够查看包含实际数据的公式,以帮助进行故障排除。

所以我想得到一个正则表达式,它将在所有非单元格引用项周围加上引号。

我试过了

原配方

=IFERROR(
 (($Q10*24*Q$2)*($O10*$O$2)*( ($T10+$V10)*$S$2)*($P10*$P$2))/($R10*$R$2),"Spec missing")

期望的输出

="IFERROR(
 (("&$Q10&"*24*"&Q$2&")*("&$O10&"*"&$O$2&")*( ("&$T10&"+"&$V10&")*"&$S$2&")*("&$P10&"*"&$P$2&"))/("&$R10&"*"&$R$2&"),""Spec missing"")"

当我复制输出并粘贴为文本时,我想在输出文本的单元格中获得一个公式,如下所示:

="IFERROR(
 ((0.363194444444444*24*1)*(17348*1)*( (4.096+18.874368)*1)*(2519*1))/(3*1),""Spec missing"")"
  • 然后我可以将其复制下来,如果发生奇怪的事情,这有助于我对公式(或数据)进行故障排除。
4

1 回答 1

0

我发现的解决方案:

我复制公式并将其粘贴到 F10 中(前面有一个 ',因此它作为文本字符串出现),然后粘贴以下内容:

="="""&REGEXREPLACE(regexreplace(F2,"\""","\""\"""),"(\$?[A-Z]{1,2}\$?\d+)","""&$1&""")&""""

说明:i)第一个正则表达式替换(从最内层到最外层)我用来通过用两个双引号替换所有双引号来转义公式中的所有引号,这样原始公式中的引号就不会搞砸了。ii) 第二个 REGEXREPplace 查找与“$A1”(或“A1”或“A$1”)模式匹配的内容,最多允许两个字母(例如,“AA1”也可以)。iii)我把“=”“”&在和“”“”之前和之后完成公式。

这个设置仍然存在的一个问题是它不能处理另一个工作表中的单元格引用,例如“Rankings!A1”。我不确定我可以使用哪种正则表达式来匹配“!”之前的所有内容 这可能是工作表名称的一部分,而不会开始匹配其他内容。. .

于 2019-08-04T23:24:40.310 回答