乐于分享
好东西不私藏

Excel-函数公式-公制转换英制&英制分数转换小数

Excel-函数公式-公制转换英制&英制分数转换小数

“公称直径转换为英制管径

材料汇总表匹配材料编码表,一边用公称直径,一边用英制管径,于是有了本文。

常规做法是利用上图这样的对照表,采取LOOKUP家族或者INDEX&MATCH组合进行查找提取。

也可以写成下面的公式:

=IFS(A1=15,0.5,A1=20,0.75,A1=32,1.25,A1=40,1.5,A1=65,2.5,A1=80,3,TRUE,A1/25)

但其实可以通过已有的函数进行数学运算,直接获得结果。

1、

=FLOOR(A1/25,0.25)

2、

=MROUND(A1/25-0.1,0.25)

3、

=INT(A1/6.25)*0.25

4、

=TRUNC(A1/6.25)*0.25

这四个公式可以完美获得结果,至于运算逻辑可以自行学习。

之后我又发现存在一些英制管径,既有写成小数,也有写成分数。按照一般使用习惯,需要将分数都转换为小数。可以有三种写法:

1、

=LET(  txt, A1,  space, ISNUMBER(FIND(" ", txt)),  slash, ISNUMBER(FIND("/", txt)),   IFS(space,    VALUE(LEFT(txt, FIND(" ", txt)-1)) + VALUE(MID(txt, FIND(" ", txt)+1, FIND("/", txt)-FIND(" ", txt)-1)) / VALUE(RIGHT(txt, LEN(txt)-FIND("/", txt))),    slash,      VALUE(LEFT(txt, FIND("/", txt)-1)) / VALUE(RIGHT(txt, LEN(txt)-FIND("/", txt))),      TRUE,VALUE(txt)    )  )

2、

=LET(  txt, A1,  space, FIND(" ", txt & " "),  slash, FIND("/", txt & "/"),  leftNum, VALUE(LEFT(txt, space - 1)),  rightNum, VALUE(MID(txt, space + 1, slash - space - 1)) / VALUE(RIGHT(txt, LEN(txt) - slash)),  IF(space <= LEN(txt), leftNum + rightNum, IF(slash <= LEN(txt), rightNum, VALUE(txt))))

3、

=LET(  txt, A1,  leftpart, TEXTBEFORE(txt & " "" "),  rightpart, TEXTAFTER(txt & " "" ", -1),  leftNum, IFERROR(VALUE(leftpart), VALUE(TEXTBEFORE(leftpart, "/")) / VALUE(TEXTAFTER(leftpart, "/"))),  rightNum, IF(rightpart = ""0VALUE(TEXTBEFORE(rightpart, "/")) / VALUE(TEXTAFTER(rightpart, "/"))),  leftNum + rightNum)

实际上如果该英制管径的分数存在于独立单元格,而不是描述字段中,将该单元格格式从分数改为常规,即可直接获得转换结果。

测试对照表如下,结果都正确。如果有更奇葩的写法,比如1-1/2,可以对应修改以上公式中的" "为"-"。



本公众号发表的所有内容仅代表个人观点,和任何机构、组织或者第三方都没有关系,绝对没有歌颂或抨击任何个体或群体的意图

本公众号会尽力确保发布内容的准确性和完整性,但无法保障所有信息的及时性或者可靠性。分享的各种信息只是提供参考,不能当作专业的技术指导,是否有效还请自行判断。

本公众号会不定期分享一些资源链接,只是为了提供工作或生活的便利,各位读者使用这些资源的时候请自行承担风险,建议搭配沙盒软件或虚拟系统运行。如果因此导致各位读者的数据和隐私安全损害,本公众号无力负责。

本公众号发布的文字、图片、音乐、视频等素材,部分来源于互联网,在此尊重所有原创作者的合理权益,默认会鸣谢作者或提供原始链接,如有疏漏存在侵权请联系我删除。

本公众号保留随时对发布内容进行修改、删除或者更新的权利。

感谢各位读者的阅读、支持与理解,如果符合您的需求或爱好,烦请关注并「设为星标」