表格将公式如何转化为内容(如何把表格中的公式转化成文本格式)
各位经常使用过Excel公式计算过表格数据吧,的确很方便的。然而,有时候,我们想过没有:能否将带有数值运算的公式轻松地以字符串的方式拿出来呢?或者将一个文本的公式字符串轻松地又转换为计算数值的真正公式呢?
之所以带着这个问题问,源自于今天我的一个名叫“拈花一笑225953”的粉丝提的一个悟空问答问题“如何使用条件格式判断单元格是否含有公式?”,当然我也给这位粉丝回答了较为靠谱的答案,回答如下。
先用FormulaText(带公式的单元格名字),产生出文本格式得公式字符串,然后用条件格式中新建规则“只包含以下内容的单元格设置格式”-->“编辑规则说明”下面选择“特定文本”-->“包含”-->输入=号-->设置“格式”-->点击确定即可。
当然还有一个 “企业家的摇篮”的朋友也回答的这个问题,他的答案是后台VBA方式进行的,代码如下。
If ActiveCell = "" Then
MsgBox "空单元格"
ElseIf ActiveCell.HasFormula Then
MsgBox "有公式"
ElseIf IsNumeric(ActiveCell) Then
MsgBox "数值"
End If
If ActiveCell.Locked Then
MsgBox "已锁定"
Else
MsgBox "未锁定"
End If
从代码上看,简洁,可读性强。对于VBA爱好者来说,是可以的,对于不喜欢的VBA甚至VBA小白的朋友而言,不大适合。
为此,我本次将不涉及任何VBA代码知识,而纯粹运用工作表函数实现今天的解决方案。为了这个悟空问题,我思考良久,干脆做一个完整的“计算公式”和“字符串公式”相互转换的方案。希望对于我们Office Excel高级办公工作的朋友有所帮哦!
好了,我们同样先设计一个简单的Excel表格,然后填充必要的带公式和不带公式的数据吧。
一、Excel表格简单设计
图1 Excel表格简单设计
二、将带有公式的数值转换为公式字符串
首先,我们必须找下有无公式方面的工作表函数。建议可由熟悉的公式英文单词Formula去公式编辑栏里面输一下试试是否可以找到?
果然,很方便找到的FormulaText(计算数值的公式)函数即可将数值计算公式方便转换为字符串公式。但是呢,存在一个问题,那就是如果参数为非公式的话,容易报错。
为了避免以上情况发生。我们利用一个容错机制的工作表函数IfError()可以很好地规避这种现象。根据上面的表格。我们可以在D4单元格内初步将公式写成的=IFERROR(FORMULATEXT(C4),"No Formula")形式作为判断是否存在公式问题。最终的成型如下截图所示
图2 生成公式串并判断是否存在公式问题
三、将公式字符串重新还原成为可计算的真正公式
对于这个问题,有一定的难度。难就难在很多人不清楚这个奖字符串公式还原为可计算的真正公式。不卖关子,直接告诉大家吧,它就是Evaluate (字符串公式参数)函数。
对这个函数的使用时非常讲究的,切记不能直接在公式编辑栏中明式地使用,只能隐式地在名称管理器中使用。我们可以在名称管理器中定义一个名称FormulaStringToValue,然后再定义其内容。如下图所示
图3 定义名称并隐式使用还原公式函数Evaluate
和上面的函数一样,有可能出现报错现象。为此,我们同样利用解决这种现象。最终将公式字符串还原成具体的可计算的真正公式情况。如下图所示
图4 将公式字符串还原为真正的计算公式
四、对“计算公式”和“字符串公式”相互转换问题的总结
我们还是以图形的方式简洁明了总结给大家吧。如下图所示
图5 小结
好了,就分享到这里吧,但愿对大家的工作今后有所帮助!也带着慢慢的诚意抛砖引玉吧!
最后,还是希望各位及新朋友多多的关注(头条号:跟我学office高级办公)、推广和点评哦!谢谢大家!