如图,excel中要提取数字并全部转化成单位为吨的数量(1g=1ml来计算),请大神给公式

如题所述

这个公式涉及到三个点:

1.提取字符串中的数字,可以利用公式=LOOKUP(9.99E+307,--LEFT(A30,ROW($1:$99)))实现

2.提取字符串中的单位,可以利用公式=RIGHT(A30,LEN(A30)-LEN(B30))实现

3.单位的转化,当单位为ml和g的时候,原数字转化为吨除以1000000,当单位为L和KG的时候,原数字转化为吨除以1000,这需要用陈函数和or函数结合

4.综合上述,结合三个步骤的公式,为如下,很长,但是很好理解

=IF(OR(RIGHT(A30,LEN(A30)-LEN(B30))="ML",RIGHT(A30,LEN(A30)-LEN(B30))="G"),LOOKUP(9.99E+307,--LEFT(A30,ROW($1:$99)))/1000000,IF(OR(RIGHT(A30,LEN(A30)-LEN(B30))="L",RIGHT(A30,LEN(A30)-LEN(B30))="KG"),LOOKUP(9.99E+307,--LEFT(A30,ROW($1:$99)))/1000,""))

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-11-11
B2公式:
=MAX(IFERROR(--LEFT(A2,ROW($1:$20)),0))/LOOKUP(SUBSTITUTE(A2,MAX(IFERROR(--LEFT(A2,ROW($1:$20)),0)),""),{"g","kg","l","ml"},{1000000,1000,1000,1000000})
数组公式,需要按三键CTRL+SHIFT+回车,完成公式,下拉。本回答被提问者采纳
第2个回答  2015-11-11
先通过替换功能将单位后缀的规格全部改为小写字母。然后插入一行输入如下公式
=IF(RIGHT(C14,2)="ml",(LEFT(C14,LEN(C14)-2))/1000000,IF(RIGHT(C14,2)="kg",(LEFT(C14,LEN(C14)-2))/1000,IF(RIGHT(C14,1)="l",(LEFT(C14,LEN(C14)-1))/1000,IF(RIGHT(C14,1)="g",(LEFT(C14,LEN(C14)-1))/1000000))))

把公式中的C14换成你所在的单元格,然后填充。
第3个回答  2015-11-11
假设数据在A列,在B2单元格内输入
=IF(RIGHT(A2,2)="ML",LEFT(A2,LEN(A2)-2)/1000000,IF(RIGHT(A2,2)="KG",LEFT(A2,LEN(A2)-2)/1000,IF(RIGHT(A2,1)="L",LEFT(A2,LEN(A2)-1)/1000,IF(RIGHT(A2,1)="G",LEFT(A2,LEN(A2)-1)/1000000,"单位不正确"))))
然后下拉
相似回答