Office中国论坛/Access中国论坛

标题: 急!!!箱子的长宽高都在一个单元格里怎么算出总体积啊? [打印本页]

作者: horace2008    时间: 2006-6-25 02:05
标题: 急!!!箱子的长宽高都在一个单元格里怎么算出总体积啊?
各位大哥大姐,


像这样的问题应该怎么做啊?就是一个箱子的长宽高都在一个格子里,然后有要算出总体积啊。比如说,21*31*54这三个数都是在一个单元格里的,那如何算出来这三个数的相乘的积啊。我一个EXCEL表格里有2000千多个这个数要做啊。如果一个一个去算或是一个一个再把这三个数(21,31,54)重新输入三个不同的单元格里,然后再算,要费很多时间的啊。所以,请能人高手帮忙啊。能不能有什么办法或是什么公式可以算出来的啊。(请看附件啊。本人语言能力表达有限,表达不清楚的,你看了就明白了,就是算出总体积啊)


谢谢啊![attach]18705[/attach]

作者: scottwang    时间: 2006-6-25 06:54
[attach]18708[/attach]

作者: j13583    时间: 2006-6-25 09:02
标题: 用Eval
Eval("21*31*54")

以下可获得默认值:
Application.Eval(.Fields("fieldname").DefaultValue)

[此贴子已经被作者于2006-6-25 1:02:48编辑过]


作者: chenchunhuiabc    时间: 2006-6-26 01:00
设A7为4*6*8,在要计算的单元格输入如下公式

=MID(A7,1,FIND("*",A7)-1)*MID(MID(A7,FIND("*",A7)+1,10),1,FIND("*",MID(A7,FIND("*",A7)+1,10))-1)*MID(MID(A7,FIND("*",A7)+1,10),FIND("*",MID(A7,FIND("*",A7)+1,10))+1,LEN(A7)-FIND("*",MID(A7,FIND("*",A7)+1,10))+1)
作者: horace2008    时间: 2006-6-26 16:57
非常谢谢啊。大家的做法都很好,答案也是正确的啊。我还觉得2楼的scottwang朋友的做法太出神入化了啊。他只是在每个数的后面写:=a,就得出答案了啊。好神奇啊。真的谢谢你这位scottwang朋友啊。太好了。我省去了好多时间,又学到一招啊。但还是有点弄不清楚这是什么原理啊。哈哈。为什么一输入=a就可以得出答案啊。好想知道啊。



谢谢谢谢谢谢大家啊!!!!
作者: horace2008    时间: 2006-6-26 17:19
scottwang 朋友啊。谢谢你啊。我在我其它的工作表格中输入你的公式:=a,却不行啊,得不到结果啊。是#NAME?这个结果啊。为什么会这样啊。在你弄过的表格就可以啊。为什么啊,谢谢啊。教教我啊!!!



谢谢啊。
作者: HSQ8888    时间: 2006-6-26 18:55
你要在“插入”--“定义”  A  ,引用位置 =EVALUATE('工作表名称'!要计算的单元格),你可以看scottwang做给你的附件
作者: horace2008    时间: 2006-6-26 23:19
谢谢大家啊。可我还是不明白啊。chenchunhuiabc 朋友的算法也是完全正确的,但我现在只能抄他的这条公式来用了。却不能自己渗透啊。希望有朋友加我啊。并且给我讲下啊。谢谢了。我真的很需要这个公式的。

我的QQ:441265270。

我的邮箱:chenwenyi2008@163.com

谢谢了啊!在线等啊
作者: chenjun86666    时间: 2006-6-28 07:40
标题: 我已用函数解决
[attach]18763[/attach]



作者: horace2008    时间: 2006-6-28 17:19
谢谢大家啊。大家的做法都很对啊。只是我还没能明白,但我会长期保存这几条公式的,谢谢啊!!!

给我帮了不少忙!
作者: HSQ8888    时间: 2006-6-28 17:40
其实scottwang做的最简单的。
作者: LIXIANACCP    时间: 2006-6-28 21:25
以下是引用HSQ8888在2006-6-28 9:40:00的发言:


其实scottwang做的最简单的。

1.如将*变成×会出错?(如50*65*75---变成--50×65×75)

2.如果能用模块解决就好了!
作者: scottwang    时间: 2006-6-30 00:49
以下是引用LIXIANACCP在2006-6-28 13:25:00的发言:



1.如将*变成×会出错?(如50*65*75---变成--50×65×75)


2.如果能用模块解决就好了!

定义名称: A=EVALUATE(SUBSTITUTE(UPPER(Sheet1!$A1),"X","*")).

假设你的数据在A列. UPPER的作用是保证输入时,不论是大小写"X",均可运算.
作者: horace2008    时间: 2006-6-30 17:47
scottwang朋友,你在线啊?能不能给我讲解下你的公司啊。我看你的算法实在是太绝了,只是=a就能够完全算出来,我不知道你是隐藏了公式还是确实有这么绝的算法,总之,谢谢你教教我啊!!!

因为另外的两位朋友也给了我公式,虽然不完全一要,但算法也是完全对的,只是我能力太低,一下子不能渗透,我希望也能学下你的算法。谢谢啊
作者: HSQ8888    时间: 2006-6-30 20:03
定义名称: A=EVALUATE(SUBSTITUTE(UPPER(Sheet1!$A1),"X","*")).
SUBSTITUTE(UPPER(Sheet1!$A1),"X","*")Sheet1!$A1里 用*替代X 不论是大小写"X"。
EVALUATE(SUBSTITUTE(UPPER(Sheet1!$A1),"X","*")). 计算Sheet1!$A1 ,Sheet1!$A1里*替代X,不论是大小写"X"。


[此贴子已经被作者于2006-6-30 12:03:57编辑过]


作者: tqygm    时间: 2006-7-5 07:21
对于生手:先分列,后计算.
作者: zhaopin616    时间: 2006-7-5 16:54
好!我也学会了eval
作者: oojiao    时间: 2006-8-2 00:59
厉害,真的很佩服!!这样做能省多少时间啊。楼主一定要请客啊~~!!




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3