分享一个超神奇的公式! 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。
所以我们可以运用这个特性规则,进行下一步的公式设置。

第二步:分数运算公式化
我们输入下面公式:
="="®EXP(A2,"\d+/\d+")
用等于号与上一步REGEXP函数的返回结果连接合并。形成公式。比如之前的“1/5”变成“=1/5”,即 =1÷5 的运算公式。

第三步:文本公式计算
外面嵌套EVALUATE函数:
=EVALUATE("="®EXP(A2,"\d+/\d+"))
将上一步的{"=1/5","=1/5","=2/5"}三个文本算式分别计算求值得到:0.2,0.2,0.4

第四步:简单求和
最外面嵌套SUM求和函数:
=SUM(EVALUATE("="®EXP(A2,"\d+/\d+")))
将上一步的0.2,0.2,0.4相加得到0.8。

如果不想结果显示为小数格式,可以设置单元格格式为分数格式。
推荐阅读:regexp+sum这个厉害的求和公式请收藏