我使用的是Excel MATCH函数,如果lookup_value是一个未经修改的数字,它就能工作,但是如果lookup_value是一个计算数字,它并不总是有效的。
更具体而言:
我的电子表格可以询问用户是否愿意使用推荐的粒子大小值。如果她选择"No",她可以选择输入自己的价值。她可以输入帝国单位或公制单位的价值。有一个单元格用于帝国输入,一个单元格用于度量输入。(她可以选择她所填写的)。
因为所有的计算最终都必须以帝国单位进行,所以最后的粒子大小框接受用户指定的值,或者保持它原来的样子(如果输入为帝国),或者将它转换回帝国(如果它是以公制输入的话)。它是这样做的,使用这个等式:
=IF(AND(S24="No",U25=""),S25,IF(AND(S24="No",U25<>""),U25/25.4,S23))如果S24持有是否使用推荐值的决定,则U25保存度量输入,S25保存帝国输入,S23保存推荐值。转换是从mm到in。
最后的粒子大小然后由另一张纸调用,并在MATCH函数中使用。度量输入单元中的某些输入值(从下拉菜单中)导致来自MATCH函数的#N/A错误。
我尝试删除无关的空格,将所有涉及的单元格格式化为小数3位,并将从公制到帝国的转换直接放入lookup_value单元格(例如,我在lookup_value单元格中输入了以下命令,但在lookup_array中仍然找不到0.375 )。
=9.525/25.4有人知道为什么MATCH函数只适用于某些lookup_values,即使它们只是转换,只需要将每个帝国值乘以25.4,然后除以25.4?
发布于 2015-02-09 08:28:48
Match()函数有一个重要的参数:最后一个参数。它要么是0,要么是1。如果是0,那么匹配将只找到一个确切的匹配。在您的场景中,当您在不同系统之间转换数字时,产生的数字可能不是完全匹配的。
您可能需要使用四舍五入或其他技术来确保Match()函数的第一个参数确实在输入Match函数的值列表中。
格式化为特定数量的小数是不够的。所寻找的数字匹配必须是值上的精确匹配,而不是外观上的匹配。
为了获得更好的结果,您可能希望应用舍入而不是格式化。
这是我在没有看到数据样本的情况下所能说的。编辑您的问题并包含一个文件(或公共共享站点上的文件链接)。那我就可以说得更具体了。
https://stackoverflow.com/questions/28405245
复制相似问题