如何获取单元格文本中的数字

不用sql,通过什么样的方式能够获得单元格里,像“5小时49分”、“158小时1分”、“50分”、“48小时”这样里面的小时数和分钟数(“50分”的话小时数为0,分钟数为50,“48小时”的话小时数为48,分钟数为0)

FineReport fireFade 发布于 2019-4-11 10:10 (编辑于 2019-4-11 11:31)
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
cherry团子Lv6中级互助
发布于2019-4-11 10:27(编辑于 2019-4-11 15:14)

小时取数: if(find("小时", B3) = 0,0,INDEXOFARRAY(split(B3, "小时"), 1))

分取数: if(find("分", B3) = 0,0,if(find("小时",B3)=0,SUBSTITUTE(B3,"分",""),REPLACE(INDEXOFARRAY(split(B3, "小时"), 2),"分","")))

模板:

2.png


效果:

1.png


  • fireFade fireFade(提问者) 效果很好了,但这种情况怎么处理“47分”。。
    2019-04-11 10:45 
  • cherry团子 cherry团子 回复 fireFade(提问者) 有多少分,就能取到多少分,你说的哪种情况。你49换成47,一样可以用呐
    2019-04-11 10:46 
  • fireFade fireFade(提问者) 回复 cherry团子 我是说文本的值就是“47分”,用上面小时取数的公式会得到“47分”
    2019-04-11 10:53 
  • fireFade fireFade(提问者) 只有分钟数没有小时数的时候,会把分取出来当做小时,并且分钟数取不出来
    2019-04-11 10:58 
  • cherry团子 cherry团子 回复 fireFade(提问者) 你这,因为你的要求是这样取得,不知道你为啥一会要,一会儿不要,你要功能,那你就完善一下题目吧,如果你要加上\"分\"的话,那公式就不要用replace 处理了,可以直接得到49分,不太清楚你的功能实现哦
    2019-04-11 11:21 
最佳回答
0
魏先鹏Lv7中级互助
发布于2019-4-11 10:13

用公式   image.png这里面有一堆,可以找自己合适的

  • fireFade fireFade(提问者) 就是在里面找了一遍,没发现合适的
    2019-04-11 10:14 
  • 魏先鹏 魏先鹏 回复 fireFade(提问者) CONCATENATE(left(),right()) 用这个拼接组合使用
    2019-04-11 10:17 
  • fireFade fireFade(提问者) 回复 魏先鹏 小时数位数可能是1、2、3位,left取不到正确的小时数~
    2019-04-11 10:18 
  • 魏先鹏 魏先鹏 回复 fireFade(提问者) left(A28,find(\'小\',A28)-1)
    2019-04-11 10:31 
  • 魏先鹏 魏先鹏 回复 fireFade(提问者) 先用find取到,小的位置,然后用left截取出来位置前的数字。分,也同理
    2019-04-11 10:32 
最佳回答
0
JackWangLv5中级互助
发布于2019-4-11 10:26

SUBSTITUTE(text,old_text,new_text,instance_num)用这个把文字替换成空的,

有空格就用TRIM(text):清除文本中所有空格

  • fireFade fireFade(提问者) 我也这样想过,处理完后15小时4分,比5小时14分小。。
    2019-04-11 10:28 
  • 4关注人数
  • 1085浏览人数
  • 最后回答于:2019-4-11 15:14
    请选择关闭问题的原因
    确定 取消
    返回顶部