EXCEL遇上文本表达式,你会怎么处理?
根据A列的文本表达式,计算结果如B列,你是怎么做的呢?一个一个的在文本表达式前面添加等号吗?当数据量大时,如何能快速批量的去解决呢?
1、简单的文本表达式计算
方法一:等号(=)替换成等号(=)
操作步骤:
第一步:输入公式="="&A2,下拉填充公式
第二步:复制公式单元格,按鼠标右键,选择性黏贴成值
第三步:按
查找内容:=
替换为:=
点【全部替换】
效果如下:
方法二:转换Lotus1-2-3公式
操作步骤:
第一步:复制A列文本表达式到B列,【文件】→【选项】→【高级】→勾选【转换Lotus 1-2-3公式】→【确定】
第二步:选中B列数据,在【数据】选项卡下选择【分列】
然后直接点【完成】
效果如下:
需要注意的是,做完后记得要返回【文件】→【选项】→【高级】→取消勾选【转换Lotus 1-2-3公式】→【确定】
方法三:宏表函数EVALUATE
操作步骤:
第一步:点B2单元格,在【公式】选项卡下选择【定义名称】
第二步:在弹出的【新建名称】对话框中,名称输入JS
引用位置输入:=EVALUATE(Sheet1!$A2),点【确定】
第三步:在B2单元格输入=js,按
向下填充公式,效果如下:
2、复杂的文本表达式计算
操作步骤:
第一步:点B2单元格,按
第二步:在弹出的【新建名称】对话框中,名称输入JS
引用位置输入:
=EVALUATE(SUBSTITUTE(SUBSTITUTE(Sheet2!$A2,"[","*ISTEXT("""),"]",""")"))
点【确定】
点【关闭】
第三步:在B2单元格输入=JS,按
向下填充公式,效果如下:
公式含义:引用位置的公式
=EVALUATE(SUBSTITUTE(SUBSTITUTE(Sheet2!$A2,"[","*ISTEXT("""),"]",""")"))
SUBSTITUTE(Sheet2!$A2,"[","*ISTEXT(""")部分是将[替换成*ISTEXT("
外层再套个SUBSTITUTE是将]替换成")
函数ISTEXT判断一个值是否为文本,返回逻辑值TRUE或FALSE。
ISTEXT("长")返回TRUE,ISTEXT("宽")返回TRUE,A2单元格文本表达式就是(10*TRUE+8*TRUE)*2,发生四则运算时,TRUE相当于1,所以是(10+8)*2,再使用宏表函数EVALUATE返回结果为36。