分享一个超神奇的公式! wps表格中对混合内容中的分数求和的技巧


    粉丝求助SOS:如何对混合内容中的[分数]求和?
    如下图所示:A2单元格中为混合内容。包括汉字,数字,标点(.),运算符(/除号)等。我们的目的很清晰,就是将混合内容中的分数:1/5(五分之一),1/5(五分之一),2/5(五分之二)提取出来然后求和,即1/5+1/5+2/5=4/5。
    
    问题看似很简单,实则有一定的难度与忽略点。我们用到的是"="(等于号)+regexp++evaluate+sum公式组合解决这个问题。下面我们看看是如何起作用的。
    第一步:正则提取分数
    输入REGEXP正则表达式函数:
    =REGEXP(A2,"\d+/\d+")
    
  • \d+:表示1个或多个任意的连续的数字。
  • \d+/\d+:表示 “数字/数字”格式,即所有分数的可能性。包括但不限于本例中的:1/5,1/5,2/5。

    
    重点误区来了:
    有的小伙伴会说,既然上一步已经将文本格式的分数全部提取到了:
    {"1/5","1/5","2/5"}
    我们只需要通过下面公式:
    =SUM(REGEXP(A2,"\d+/\d+")*1)
    正则表达式部分乘以1,将文本格式的分数数据转换为真正的数值,然后SUM函数求和不就行了。但是我们发现出现错误了。
    1/5,1/5,2/5三个分数,被默认当做日期格式数据:5月1日,5月1日,5月2日 处理了,而日期格式数据的本质又是数值,所以直接乘以1后,变成了{45662,45662,45693},求和结果自然是错误的。
    
    就算我们的分数与日期不相关,比如我们在B3单元格直接手动录入“15/26”。
    理论上这个“分数”乘以1后,还会返回“分数”的本身:
    =B3*1
    但是我们发现出现了错误值。
    说明在Excel或WPS表格中。分数格式的数据不能这样手动录入。
    
    Excel或WPS表格中,真分数应该是这样录入的:
    输入“0+空格+分数”输入真分数。
    比如要输入真分数“15/26”,在单元格中输入“0 15/26”,回车后单元格会显示“15/26”,编辑栏显示0.576923076923077,可参与运算。
    如果输入带分数,如1又1/2,则在单元格中输入“1 1/2”,回车后单元格显示“1 1/2”,编辑栏显示1.5,可参与运算。
    所以我们用上述规则正确输入分数后,乘以1
    =B4*1
    会返回原分数,说明正确,可参与运算。
    
    使用分数运算公式可输入分数:
    如果要进行分数的加减乘除运算,可以使用相应的公式。例如,要计算15/26+1/26,在单元格中输入“=15/26+1/26”,回车后会得到结果:0.615384615384615,即8/13。
    所以我们可以运用这个特性规则,进行下一步的公式设置。
    
    第二步:分数运算公式化
    我们输入下面公式:
    ="="&REGEXP(A2,"\d+/\d+")
    用等于号与上一步REGEXP函数的返回结果连接合并。形成公式。比如之前的“1/5”变成“=1/5”,即 =1÷5 的运算公式。
    
    第三步:文本公式计算
    外面嵌套EVALUATE函数:
    =EVALUATE("="&REGEXP(A2,"\d+/\d+"))
    将上一步的{"=1/5","=1/5","=2/5"}三个文本算式分别计算求值得到:0.2,0.2,0.4
    
    第四步:简单求和
    最外面嵌套SUM求和函数:
    =SUM(EVALUATE("="&REGEXP(A2,"\d+/\d+")))
    将上一步的0.2,0.2,0.4相加得到0.8。
    
    如果不想结果显示为小数格式,可以设置单元格格式为分数格式。
    
    推荐阅读:regexp+sum这个厉害的求和公式请收藏