0

我正在使用 ExcelMATCH函数,如果lookup_value是未修改的数字,它可以工作,但如果 是计算出的数字,它并不总是有效lookup_value

更具体:

我的电子表格可以询问用户是否愿意使用推荐的粒径值。如果她选择“ No”,她可以选择输入自己的值。她可以输入英制单位或公制单位的值。有一个用于英制输入的单元格和一个用于公制输入的单元格。(她可以选择她填写的内容)。

因为所有计算最终都必须以英制单位进行,所以最终的粒度框采用用户指定的值并保持原样(如果输入为英制),或者将其转换回英制(如果输入公制)。它使用以下等式这样做:

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

whereS24决定是否使用推荐值,U25保存公制输入,S25保存英制输入,S23保存推荐值。转换是从毫米到英寸。

然后最终的粒度由另一张表调用并在MATCH函数中使用。度量输入单元格中的某些输入值(来自下拉菜单)会导致函数#N/A出错MATCH

我尝试删除多余的空格,将所有涉及的单元格格式化为带 3 个小数位的数字,并将从公制到英制的转换直接放入lookup_value单元格中(例如,我没有拉出最终的粒度,而是在 lookup_value 单元格中输入了以下内容,但它仍然无法在 0.375 中找到lookup_array

=9.525/25.4

有谁知道为什么该MATCH函数仅适用于某些函数,lookup_values即使它们只是将每个英制值乘以 25.4 然后将该值除以 25.4 的转换?

4

1 回答 1

1

Match() 函数有一个重要参数:最后一个。它是 0 或 1。如果它是 0,那么 Match 将只找到一个 EXACT 匹配。在您的场景中,当您在不同系统之间转换数字时,生成的数字可能不完全匹配。

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

格式化为特定的小数位数是不够的。Match 正在寻找的数字必须与 VALUE 中的完全匹配,而不是在外观中。

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

在没有看到数据样本的情况下,我只能这么说。编辑您的问题并包含一个文件(或公共共享站点上的文件链接)。然后我可以更具体。

于 2015-02-09T08:28:48.103 回答