2015-02-09 55 views
0

我使用的是Excel MATCH函数,如果lookup_value是一个未修改的数字,它可以工作,但如果lookup_value是一个计算的数字,它并不总是工作。Excel MATCH函数部分工作

更具体:

我的电子表格可以询问用户是否她想用粒度的推荐值。如果她选择“No”,她可以选择输入自己的价值。她可以以英制单位或公制单位输入数值。有一个用于英制输入的单元和用于度量输入的单元。 (她可以选择填写的内容)。因为所有的计算最终都必须以英制单位来完成,所以最终的粒度框会采用用户指定的值并保持原来的样子(如果它是以英制输入的),或者将其转换回英制(if它是以公制输入的)。它所以用这个公式计算:

=IF(AND(S24="No",U25=""),S25,IF(AND(S24="No",U25<>""),U25/25.4,S23)) 

S24拥有决定是否要使用推荐值,U25持有公制输入,S25持有皇输入,并S23持有的推荐值。转换是从毫米到英寸。

然后由另一张纸调用最终颗粒大小,并在MATCH函数中使用。 公制输入单元中的某些输入值(来自下拉菜单)会导致MATCH函数发生#N/A错误。

我试图删除多余的空格,格式化所有涉及到的单元格是3位小数的数字,并将从公制到英制的转换直接输入lookup_value单元格中(例如,不是拉出最终粒径,而是输入以下在Lookup_Array中的细胞,但它仍然无法找到的lookup_array

=9.525/25.4 

0.375有谁知道为什么MATCH功能仅针对一些lookup_values的工作,即使他们只是只有entailed乘以每个帝国的转换值除以25.4,然后除以25.4?

+2

http://en.wikipedia。org/wiki/Floating_point#Accuracy_problems =>将输入数字四舍五入,如果目标数字也计算在内,则还需要舍入它们 - '= ROUND(9.525/25.4,3)' - 否,当您更改数字格式只显示3位数字,即根本不改变数值 – Aprillion 2015-02-09 08:11:58

回答

1

Match()函数有一个重要的参数:最后一个。它可以是0或1.如果它是0,那么匹配将只找到一个精确匹配。在您的情况下,当您在不同系统之间转换数字时,结果数字可能不完全匹配。

您可能想要使用舍入或其他技术来确保Match()函数的第一个参数确实在您输入到Match函数中的值列表中。

将格式设置为特定的小数位数不够好。 Match所寻找的数字必须是VALUE中的精确匹配,而不是外观。

您可能希望应用舍入而不是格式以获得更好的结果。

这和我看到的数据样本一样多。编辑您的问题并包含一个文件(或在公共共享网站上的文件链接)。然后我可以得到更具体的。

+0

谢谢,四舍五入工作! – arlederman 2015-02-10 02:34:59

+0

为了更精确一点,MATCH的最后一个参数可以是0,1或-1。取决于你想在一个排序列表中舍入或舍入[还要澄清 - 列表必须按照升序或降序排列,这取决于你的目的 - 否则你必须使用MATCH(TERM,ARRAY,0)]。 – 2015-08-11 18:44:16