请问: 一、如何实现在excel的一个单元格内输入两个以上的数字 (例如:在E3里输入4 ,-2,7),然后使用

请问:
一、如何实现在excel的一个单元格内输入两个以上的数字 (例如:在E3里输入4 ,-2,7),然后使用这个单元格参与和其他单元格的求和。我需要的是在E3里还是显示“4 -2 7”,但是求和时E3就相当于数字4减2加7=9
二 、多个人往同一张表里输入数据(每个人都输入他自己的一张表),有没有什么公式可以快速对比每个人的表,发现里面不相符的数据?

你说的这些都需要VBA编程,
1、针对第一个问题,实际上是要有一个自开发的函数,比如用VBA写的一个函数SUMTZ(),
完成你的特殊单元格内的数值运算,比如SUMTZ(E3)就等于9,这样E3与别的单元格求和的时候,就用SUMTZ(E3)代替。
注:楼上“=SUM(--MID(SUBSTITUTE(E3," ",REPT(" ",15)),{1,16,31},15)) ”的公式不严格,当数值位数较大时,就不对了。
如果如果只是E3单元格是这样的设置,可以考虑使用“定义名称”,假设名称定义为“DDD ”,在引用位置输入:
=EVALUATE(SUBSTITUTE(SUBSTITUTE(Sheet1!$E$3" ","+"),"+-","-"))
这样DDD就表示E3单元格内的求和了,比如在A1输入:
=ddd+1
就等于9+1=10

2、第二个问题,编写VBA,对比每个表相应的单元格值就行了,但你说的比较简单,发现后怎么处理没有说清楚,还有怎么算是不相符也没有说清楚。追问

多谢
第二个问题里“不相符”的意思就是“不一样”,处理方法就是让我知道某个人所输入的表里的某个单元格内的数字与其他人的表不同,只要想办法能让我一目了然就行

追答

这样编写类似下面的宏:
假设有sheet1、sheet2、sheet3到sheet10,一共10个表,数据区域在A列到Z列,从第一行到100行。(数据可根据需要修改)不相同的单元格填充红色。
Sub ddd()
Dim i, j, l, m As Integer
For i = 1 To 100
For j = 1 To 26
m = 0
For l = 2 To 10
If IsError(Sheets("sheet" & l).Cells(i, j)) Then
m = 1
GoTo tt
End If
If IsError(Sheets("sheet1").Cells(i, j)) Then
m = 1
GoTo tt
End If
If Sheets("sheet" & l).Cells(i, j) Sheets("sheet1").Cells(i, j) Then m = 1
Next
tt:
If m = 1 Then
For l = 1 To 10
With Sheets("sheet" & l).Cells(i, j).Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 192
.TintAndShade = 0
.PatternTintAndShade = 0
End With
With Sheets("sheet1").Cells(i, j).Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 192
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Next
End If
Next
Next
End Sub

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-27
1、数字和数字要有共同分隔符 利于find查找然后mid字符计算
2、if何以实现你的要求,或者直接用“=”调用各人数据 但需要你不断刷新或不断点保存才可以看到数据情况
第2个回答  2011-05-09
前提:输入的数字之间用空格分开
输入数字放在E3,求和放在F3

光标置于F3,点击“插入/名称/定义”
名称:ys;引用位置:=EVALUATE(SUBSTITUTE(SUBSTITUTE(Sheet1!E3," ","+"),"+-","-")
在F3单元格输入“=ys”
就可以显示你要的结果了。

说明:公式命名引用的是相对位置,此处,计算结果在输入数字后一列。
第3个回答  2011-04-27
求和:
=SUM(--MID(SUBSTITUTE(E3," ",REPT(" ",15)),{1,16,31},15))
第二个……没太明白。
第4个回答  2011-04-27
悬赏分给我。谢谢 任务。
相似回答