EXCEL显示公式太长 怎么办 IF公式
答案:6 悬赏:30 手机版
解决时间 2021-11-11 06:43
- 提问者网友:山高云阔
- 2021-11-10 20:45
EXCEL显示公式太长 怎么办 IF公式
最佳答案
- 五星知识达人网友:你哪知我潦倒为你
- 2021-11-10 22:12
excel规范中说:
公式内容的长度 1,024 个字符
如果你的公式没有超过1024个字符却得到公式太长的提示,通常是因为公式中遗漏或多输入括号、逗号等。
如果公式确实超过1024字符。可以用定义名称的方法将公式字符数减少。
例如:插入》名称》定义 x =offset(sheet1!$a$1,,,counta(sheet1!$a:$a),counta(sheet1!$1:$1))
定义好名称后,就可以将长公式中的offset()部分用x代替,大大减少了公式的长度。例如原公式是
=index(offset(....),row(),column())
定义好名称后就可以改为
=index(x,row(),column())
公式内容的长度 1,024 个字符
如果你的公式没有超过1024个字符却得到公式太长的提示,通常是因为公式中遗漏或多输入括号、逗号等。
如果公式确实超过1024字符。可以用定义名称的方法将公式字符数减少。
例如:插入》名称》定义 x =offset(sheet1!$a$1,,,counta(sheet1!$a:$a),counta(sheet1!$1:$1))
定义好名称后,就可以将长公式中的offset()部分用x代替,大大减少了公式的长度。例如原公式是
=index(offset(....),row(),column())
定义好名称后就可以改为
=index(x,row(),column())
全部回答
- 1楼网友:煞尾
- 2021-11-11 01:33
你的公式由于都根据不同情况进行不同的计算, 所以没得精简了.
- 2楼网友:平生事
- 2021-11-11 00:25
IF函数不能超7层,故改用LOOKUP函数,其条件要升序排列:
=LOOKUP(C29,{"1长","1长1宽","1长2宽","1宽","2长","2长1宽","2宽","封四边";(D27+51)/1000,(D27+51+E27+51)/1000,(D27+51+(E27+51)*2)/1000,(E27+51)/1000,(D27+51)/1000*2,((D27+51)*2+E27+51)/1000,(E27+51)/1000*2,(D27+51+E27+51)/1000*2,0})追问总显示公式错误是怎么回事追答=LOOKUP(C29,{"1长","1长1宽","1长2宽","1宽","2长","2长1宽","2宽","封四边";(D27+51)/1000,(D27+51+E27+51)/1000,(D27+51+(E27+51)*2)/1000,(E27+51)/1000,(D27+51)/1000*2,((D27+51)*2+E27+51)/1000,(E27+51)/1000*2,(D27+51+E27+51)/1000*2})
=LOOKUP(C29,{"1长","1长1宽","1长2宽","1宽","2长","2长1宽","2宽","封四边";(D27+51)/1000,(D27+51+E27+51)/1000,(D27+51+(E27+51)*2)/1000,(E27+51)/1000,(D27+51)/1000*2,((D27+51)*2+E27+51)/1000,(E27+51)/1000*2,(D27+51+E27+51)/1000*2,0})追问总显示公式错误是怎么回事追答=LOOKUP(C29,{"1长","1长1宽","1长2宽","1宽","2长","2长1宽","2宽","封四边";(D27+51)/1000,(D27+51+E27+51)/1000,(D27+51+(E27+51)*2)/1000,(E27+51)/1000,(D27+51)/1000*2,((D27+51)*2+E27+51)/1000,(E27+51)/1000*2,(D27+51+E27+51)/1000*2})
- 3楼网友:玩家
- 2021-11-10 23:56
光标定位到需要输入公式的单元格,按Ctrl+F3
输入名称:JS
引用位置:=evaluate(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(C29,"封四边","2 长2宽"),"长","*(D27+51)+"),"宽","*(E27+51)+")&"0")
这样,直接输入:=JS,就可得结果
输入名称:JS
引用位置:=evaluate(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(C29,"封四边","2 长2宽"),"长","*(D27+51)+"),"宽","*(E27+51)+")&"0")
这样,直接输入:=JS,就可得结果
- 4楼网友:执傲
- 2021-11-10 23:41
有个不知道算不算办法的办法:
在某个空单元格比如H29写上如下公式
=IF(C29="1宽”,(E27+51)/1000,IF(C29=“2宽”,(E27+51)/1000*2,IF(C29=“1长”,(D27+51)/1000,IF(C29=“2长”,(D27+51)/1000*2,""))))
再在你原来写公式的地方写上:
=IF(H29<>"",H29,IF(C29="1长1宽",.....))
相当于是变相地截短了公式,再把H列设为隐藏就看不到了
在某个空单元格比如H29写上如下公式
=IF(C29="1宽”,(E27+51)/1000,IF(C29=“2宽”,(E27+51)/1000*2,IF(C29=“1长”,(D27+51)/1000,IF(C29=“2长”,(D27+51)/1000*2,""))))
再在你原来写公式的地方写上:
=IF(H29<>"",H29,IF(C29="1长1宽",.....))
相当于是变相地截短了公式,再把H列设为隐藏就看不到了
- 5楼网友:酒醒三更
- 2021-11-10 22:23
试一下下面公式:
=IF(C29="","",CHOOSE(LOOKUP(C29,{"1长";"1长1宽";"1长2宽";"1宽";"2长";"2长1宽";"2宽";"封四边"},ROW($1:$8)),(D27+51)/1000,(D27+51+E27+51)/1000,(D27+51+(E27+51)*2)/1000,(E27+51)/1000,(D27+51)/1000*2,((D27+51)*2+E27+51)/1000,(E27+51)/1000*2,(D27+51+E27+51)/1000*2))
这个公式拓展性较好,注意lookup函数参数的升序排序
=IF(C29="","",CHOOSE(LOOKUP(C29,{"1长";"1长1宽";"1长2宽";"1宽";"2长";"2长1宽";"2宽";"封四边"},ROW($1:$8)),(D27+51)/1000,(D27+51+E27+51)/1000,(D27+51+(E27+51)*2)/1000,(E27+51)/1000,(D27+51)/1000*2,((D27+51)*2+E27+51)/1000,(E27+51)/1000*2,(D27+51+E27+51)/1000*2))
这个公式拓展性较好,注意lookup函数参数的升序排序
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯