Excel的一个难问题,怎样将既有文字又有数字单元格中的数据提出来
发布网友
发布时间:2023-08-30 22:19
我来回答
共3个回答
热心网友
时间:2024-03-07 18:57
假设分别在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)
热心网友
时间:2024-03-07 18:58
如楼主叙述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))
公式可以向下复制。
热心网友
时间:2024-03-07 18:58
如果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)