为什么Excel中我用宏表函数substitute定义名称,引用失败

定义名称
数据 ="{"& SUBSTITUTE(A16," ",";")& "}"
数据一行都在一个单元格里 提取每行第四段数据
11 12 113 154 15 16 输入=INDEX(数据,4) 显示#VALUE!
12 13 15 14 121 16
16 13 12 14 15 111
引用数据里面有引号 =index(“11;12;113;154;15;16”,4)

失败/错误原因:你定义“数据”名称给出的引用 ="{"&SUBSTITUTE(A16,"",";")&"}" 是字符串而不是数组,所以后面使用Index函数报错。可以在定义名称时改成
=EVALUATE("{"&SUBSTITUTE(A16,"",";")&"}"),然后后面用Index就OK的了。
如果只是要求你字符串的第n段数据的话,可以使用下面的公式:
=IFERROR(TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",99)),(ROW($A$4)-1)*99+1,99)),"")
如果需要返回的是数值,用下面的公式:
=IFERROR(--TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",99)),(ROW($A$4)-1)*99+1,99)),"")
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-03-19
输入 ="49.42×(1.26×0.3+0.25+0.96)×0.2="&49.42*(1.26*0.3+0.25+0.96)*0.2 回车。 2012-11-23 23:42Stcxj|十七级 “表格里还有很多类似的算式,我要的编辑公式是能立刻知道结果……”—— 要宏表函数吧:源数据(公式)在A列(A1起),选B1——菜单栏——插入——名称——定义——在当前工作簿中的名称: ABC 引用位置: =EVALUATE(SUBSTITUTE(SUBSTITUTE(Sheet1!A1,"×","*"),"÷","/")) ——确定;在B1输入: =ABC 回车并向下填充(下拉)。
相似回答