...其中一个单元格是3*4+6, 如何在另一个单元格中出来结果18?谢谢...

发布网友 发布时间:2024-10-11 23:33

我来回答

3个回答

热心网友 时间:2024-10-14 07:30

excel好像没有这样的公式哦。据我所知,是没有的。
用vba可以实现

按alt+f11,进入vba编辑器,插入一个模块,把下面我以前写的这个函数拷贝进去。
然后在公式中输入,=getgs(a1),就可以了。程序比较简单,只能算加减乘除,复杂的我也不会,呵呵。

Public Function GetGS(GS As String) As String
Dim P(256) As String, ps As Long, p1(256) As String, pd As Long, p2(256) As String, pc As Long
Dim k As Double, f As Boolean

a = Replace(GS, "=", "=")
a = Replace(a, "+", "+")
a = Replace(a, "-", "-")
a = Replace(a, "×", "*")
a = Replace(a, "÷", "/")
a = Replace(a, "。", ".")

For i = 1 To Len(a)
b = Mid(a, i, 1)
Select Case b
Case "+", "-", "*", "/"
If Not f Then
ps = ps + 1
P(ps) = b
ps = ps + 1
f = True
Else
GetGS = "公式错误": Exit Function
End If
Case Else
P(ps) = P(ps) & b
f = False
End Select
P(ps) = Trim(P(ps))
Next i
For i = 0 To ps
If P(i) = "*" Then
If f Then
k = Val(P(i - 1)) * Val(P(i + 1))
Else
k = k * Val(P(i + 1))
End If
p1(pd - 1) = k
i = i + 1
f = False
ElseIf P(i) = "/" Then
If Val(P(i) <> 0) Then
If f Then
k = Val(P(i - 1)) / Val(P(i + 1))
Else
k = k / Val(P(i + 1))
End If
Else
GetGS = "除数为零"
Exit Function
End If
p1(pd - 1) = k
i = i + 1
f = False
Else
p1(pd) = P(i)
pd = pd + 1
f = True
End If
Next i
k = Val(p1(0))
f = True
For i = 1 To ps
If p1(i) = "+" Then
If f Then k = k + Val(p1(i + 1))
f = False
ElseIf p1(i) = "-" Then
If f Then k = k - Val(p1(i + 1))
f = False
Else
f = True
End If
Next i
GetGS = k
End Function

好名全叫猪起了 | 十二级

好厉害呀。赞一个

VBA里面也可以用那个公式。函数里面直接写上就可以了。呵呵。学了一招。
=evaluate(sheet1!$a1)

public function getgs(gs)
getgs=evaluate(gs)
end function

热心网友 时间:2024-10-14 07:31

在公式前面加等号即可,在结果栏复制-选择性粘贴-数值 ,这样结果栏就是你的数值的。

热心网友 时间:2024-10-14 07:30

需要用到宏表函数
假设这是这个数据在a1单元格
ctrl+f3
新建名称
abc
引用位置=evaluate(sheet1!$a1)
(注意这个$a1的引用)
确定
b1单元格输入=abc 即可显示结果
下拉 即可显示其他a列的结果

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com