我正在使用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
函数中使用。 指标输入单元格中的某些输入值(来自下拉菜单)会导致#N/A
函数出现MATCH
错误。
我尝试删除多余的空格,将所涉及的所有单元格格式化为3位小数的数字,并将公制转换为英制直接转换为lookup_value
单元格(例如,而不是拉动最终的粒度,我在lookup_value单元格中输入以下内容,但仍然无法在lookup_array
中找到0.375
=9.525/25.4
有人知道为什么MATCH
函数只适用于某些lookup_values
,即使它们只是转换只需要将每个英制值乘以25.4然后将该值除以25.4?
答案 0 :(得分:1)
Match()函数有一个重要参数:最后一个。它为0或1.如果为0,则匹配将仅找到完全匹配。在您的方案中,当您在不同系统之间转换数字时,结果数字可能不完全匹配。
您可能希望使用舍入或其他技术来确保Match()函数的第一个参数确实位于您输入Match函数的值列表中。
格式化为特定的小数位数不够好。匹配正在寻找的数字必须与VALUE完全匹配,而不是外观。
您可能希望应用舍入而不是格式化以获得更好的结果。
在没有看到数据样本的情况下,这就是我所能说的。编辑您的问题并包含一个文件(或指向公共共享网站上文件的链接)。然后我可以更具体。