Excel的一个难问题,怎样将既有文字又有数字单元格中的数据提出来

比如:
300克 20×30
200克 10×25
120克 12×50
我想将第一个单元格中的300提出来加上后面一个单元格里的20乘以30的结果(注:现在的20×30是文本的格式,还没有算出来的),并用相对引用算出后面的结果
有没有办法算出来?
谢谢你
但可不可以告诉我原理啊?
left len right find 是什么函数啊? len(A1)-1又是什么意思?
如果后面的单元格的内容是20"X30"呢?又该怎么算

假设分别在A列和B列,并在C列计算出结果,则在C1输入公式:
=LEFT(A1,LEN(A1)-1)+LEFT(B1,FIND("×",B1)-1)*RIGHT(B1,LEN(B1)-FIND("×",B1))
就是你要的结果。需要注意的是,你的公式里的乘号如果是 * ,则需要把C1里的 × 变成 * 。
len 就是求目标单元格中文本长度,left取目标单元格左边的给定数目的文本。该题中,LEFT(A1,LEN(A1)-1),指取A1单元格中左边长度为A1总长度-1(即去掉“克”后)的文本,300 。
find指在文本(如B1中)中找出文本 × 所在的位置。
LEFT(B1,FIND("×",B1)-1) 指取B1单元格中 × 之前的文本(如20);
RIGHT(B1,LEN(B1)-FIND("×",B1)) 指取B1单元格中 × 之后的文本(如30)。
之后用你的公式计算出结果: 300+20×30=900。
===================
如果后面单元格是 20"X30" ,则结果为:
=VALUE(LEFT(A1,LEN(A1)-1))+LEFT(B1,FIND("""",B1)-1)*MID(B1,FIND("×",B1)+1,LEN(B1)-FIND("×",B1)-1)
======================
如果你的后面单元格的两个乘数均是固定的两位,则公式可简化为:
=VALUE(LEFT(A1,LEN(A1)-1))+LEFT(B1,2)*MID(B1,FIND("×",B1)+1,2)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-02-21
如楼主叙述A列(数字和中文分居左右)和B列(两个数字相乘"×")的数据格式,则下面公式可以通用:
=LEFT(A1,2*LEN(A1)-LENB(A1))+LEFT(B1,FIND("×",B1)-1)*RIGHT(B1,LEN(B1)-FIND("×",B1))
函数释义:
LEN(A1)——计算单元格A1中(300克)单字节字符的个数(返回值4)
LENB(A1)——计算单元格A1中(300克)双字节字符的个数(返回值5)
注意:汉字是双字节字符
FIND("×",B1)——计算B1单元格中字符"×"在字符串(20×30)中的位置(第几位)(返回值3)
LEFT(A1,2*LEN(A1)-LENB(A1))——从A1单元格中字符串(300克)的左边第一个字符开始,提取指定个数(2*LEN(A1)-LENB(A1)=LEN(A1)-(LENB(A1)-LEN(A1)))的字符(返回值300)
LEFT(B1,FIND("×",B1)-1)——从B1单元格字符串(20×30)的左边第一个字符开始,提取指定个数(FIND("×",B1)-1)的字符(返回值20)
RIGHT(B1,LEN(B1)-FIND("×",B1))——从B1单元格中的字符串(20×30)右边第一个字符开始,提取指定个数(LEN(B1)-FIND("×",B1))的字符(返回值30)
注意:
20×30 =
LEFT(B1,FIND("×",B1)-1)*RIGHT(B1,LEN(B1)-FIND("×",B1))
公式可以向下复制。
第2个回答  2007-02-21
如果A列为XXX克,B列为XX×XX
C列用公式
=mid(a1,1,len(a1)-1)+left(b1,2)*right(b1,2)

=mid(a1,1,len(a1)-1)+LEFT(A1,FIND("×",A1)-1)*MID(A1,FIND("×",A1)+1,5)
相似回答