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

材料汇总表匹配材料编码表,一边用公称直径,一边用英制管径,于是有了本文。
常规做法是利用上图这样的对照表,采取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.254、

=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 = "", 0, VALUE(TEXTBEFORE(rightpart, "/")) / VALUE(TEXTAFTER(rightpart, "/"))),leftNum + rightNum)
实际上如果该英制管径的分数存在于独立单元格,而不是描述字段中,将该单元格格式从分数改为常规,即可直接获得转换结果。

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




本公众号会尽力确保发布内容的准确性和完整性,但无法保障所有信息的及时性或者可靠性。分享的各种信息只是提供参考,不能当作专业的技术指导,是否有效还请自行判断。
本公众号会不定期分享一些资源链接,只是为了提供工作或生活的便利,各位读者使用这些资源的时候请自行承担风险,建议搭配沙盒软件或虚拟系统运行。如果因此导致各位读者的数据和隐私安全损害,本公众号无力负责。
本公众号发布的文字、图片、音乐、视频等素材,部分来源于互联网,在此尊重所有原创作者的合理权益,默认会鸣谢作者或提供原始链接,如有疏漏存在侵权请联系我删除。
本公众号保留随时对发布内容进行修改、删除或者更新的权利。
感谢各位读者的阅读、支持与理解,如果符合您的需求或爱好,烦请关注并「设为星标」。
夜雨聆风