作业帮 > 综合 > 作业

excel中能不能让分母与分子相乘后求和,分母相加求和?如2/3+1/4=(2*3+1*4)/(3+4)

来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/07/03 20:02:19
excel中能不能让分母与分子相乘后求和,分母相加求和?如2/3+1/4=(2*3+1*4)/(3+4)
excel中能不能让分母与分子相乘后求和,分母相加求和?如2/3+1/4=(2*3+1*4)/(3+4)
可以,你这一问其实是在自定义一种运算规则.
只需要用字符处理函数做
假设2/3在A1中,1/4在B1中——两格均为文本格式
那么
A1的分子:left(a1,find("/",a1)-1)
A1的分母:right(a1,len(a1)-find("/",a1))
B1的分子:left(B1,find("/",B1)-1)
B1的分母:right(B1,len(B1)-find("/",B1))
于是可以在C1中填入以下公式
=(left(a1,find("/",a1)-1)*right(a1,len(a1)-find("/",a1))+left(B1,find("/",B1)-1)*right(B1,len(B1)-find("/",B1)))/(right(a1,len(a1)-find("/",a1))+right(B1,len(B1)-find("/",B1)))
即可
再问: 你回答的第二种方法和我想要的结果一样!但是新问题又出现了:EXCEL中分数显示有问题,会约分,如果分母中有小数,显示更有问题,所以我现在想你帮帮忙改一下,还是上例,如A1单元格中公式2/13+12/126+32/45+23/434,在B1单元格中显示分母与分子相乘后的和,即(2*13+12*126+32*45+23*434)=12960,在C1单元格中显示分母相加的和,即(13+126+45+434)=618
再答: 你说的要约分或要有小数时有问题是你单元格中是数值,这个程序所做的是表达式的字符串,所以是严格按照你的要求做的,不会进行约分,也没有小数问题,你可以自己算一下试试。可以看一下下面的例子中,你可以比较一下结果(40/80不会被约成1/2; 还有0.1/0.2也是严格按照你的公式计算的):  如果一定要写一下中间结果,那就把函数稍改一下,增加一个参数vNo,vNo取0或者缺省不写时就是你要的计算结果,取1时分母与分子相乘后的和,取2时就是分母之和,函数修改如下: Function WA(sExp$, Optional vNo% = 0)
Dim DT(), DTstr, dNo%
Dim sD#, sW#
DTstr = Split(sExp, "+")
dNo = UBound(DTstr)
ReDim DT(dNo)
For I = 0 To UBound(DT)
    DT(I) = Split(DTstr(I), "/")
    If UBound(DT(I)) <> 1 Then Exit Function
    sD = sD + Val(DT(I)(0)) * Val(DT(I)(1))
    sW = sW + Val(DT(I)(1))
Next I
WA = Choose(vNo + 1, sD / sW, sD, sW)
End Function
 示例下载: