请教IF函数,谢谢。

blob.png

如图,增长率K5,计算公式为J5(当年毛利润E5-去年同期H5)/去年同期H5,其中存在一种情况是当年毛利润为正数,去年同期为负数,增长数量J5为正数,这时增长率K5应为正百分比,如果用j5/H5计算,会得出负数(因为H5是负数),因此为避免这种情况K5计算使用公式:

if((H5) < 0, (E5 - H5) / replace(H5, '-', ''), IF(H5 = 0, 0, (E5 - H5) / (H5)))

   意思是当H5为负数,使用replace将H5变为正数,但奇怪的是分页预览时遇到这种情况仍计算出负数来,如图:

blob.png

单独验证replace(H5, '-', '')正确,请教一下为什么会出现这种情况?

是计算公式设计有问题吗?


FineReport xmlili 发布于 2020-5-8 14:50 (编辑于 2020-5-8 14:53)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
18328816101Lv5中级互助
发布于2020-5-8 15:12

公式就是

if(h5=0,0,j5/abs(h5))

其他的不要,再在K5设置文本格式为百分比

  • xmlili xmlili(提问者) 请教一下,若h5=0的话,是不是不应该返加0,因为H5是分母呀。请指教
    2020-05-08 15:23 
  • 18328816101 18328816101 回复 xmlili(提问者) 你的数据里面,h5存不存在为0的情况,如果不存在那就不需要用if了,直接用后面的那个。如果存在h5=0的情况,那么当h5=0,也就是分母=0的时候,实际上这个计算是错了的,前端显示会有问题,为了在前端显示的时候不出现特殊字符,就直接让整个计算结果为0。你可以直接在单元格里试试公式1/0,看在前端页面上显示的是什么
    2020-05-08 15:31 
  • xmlili xmlili(提问者) 回复 18328816101 存在h5=0的情况,这时前端显示为元穷大,如果今年利润100万元,去年同期为0的话,这时增长率应是多少呢?或者说怎么排除一下H5=0时的情况,谢谢。
    2020-05-08 15:37 
  • 18328816101 18328816101 回复 xmlili(提问者) 我不知道实际生活中,也就是财务方面是怎么算的,但是我在项目上都是用这个公式,分母=0,结果就直接为0,排除不了这种情况的,也不能排除。另外我之前有个项目接触过财务的计算,用的excel表格,都是这种计算公式
    2020-05-08 15:44 
  • 18328816101 18328816101 回复 xmlili(提问者) 你也可以问问你们的财务,看他们在这种情况下需要在前端怎么显示
    2020-05-08 15:46 
最佳回答
0
zsh331Lv8专家互助
发布于2020-5-8 14:53
=if(H5 < 0, (E5 - H5) / H5 * (-1), IF(H5 = 0, 0, (E5 - H5) / H5))


  • xmlili xmlili(提问者) 试了,还是负数。真不是明白哪儿出问题了。
    2020-05-08 15:02 
最佳回答
0
JackloveLv7高级互助
发布于2020-5-8 15:01(编辑于 2020-5-8 15:03)

不用replace   有abs函数  abs(H5)

(E5 - H5) / ABS(H5)


  • xmlili xmlili(提问者) 试了,还是负数。真不是明白哪儿出问题了。
    2020-05-08 15:02 
  • Jacklove Jacklove 回复 xmlili(提问者) 内置模板方便的话放上来看下
    2020-05-08 15:06 
  • xmlili xmlili(提问者) 回复 Jacklove 模板不方便放上,但是我现在已经解决了,把增长数量设了一列,把去年同期设了一列,然后一列再ABS(去年同期)。现在是正数了,
    2020-05-08 15:22 
最佳回答
0
luojian0323Lv7资深互助
发布于2020-5-8 15:14(编辑于 2020-5-8 15:29)

if((H5) < 0, (E5 -H5) / ABS(H5), IF(H5 = 0, 0, (E5 - H5) / (H5)))

这样行吗?

如果不行,对H5单元格属性设置为数值格式

image.png

  • xmlili xmlili(提问者) E5=8938469.51,H5=-3234867.04 ,是E5大呀
    2020-05-08 15:20 
  • 5关注人数
  • 482浏览人数
  • 最后回答于:2020-5-8 15:29
    请选择关闭问题的原因
    确定 取消
    返回顶部