我有一张表格,其中每个值都是一个公式。
我有以下 XLOOKUP =XLOOKUP(G3,C3:C28,E3:E28,"")
:。
此C
列是按照公式计算的百分比。此列指定为百分比,这些是整数百分比。
对于G3
我在单元格中手动输入百分比。此单元格被指定为百分比。
无论出于什么原因,与以下情况相比,查找只有一半有效,如下图所示G6
:
我试图找出这些值是否相等,根据EXACT(G3,C3)
公式返回,它们是TRUE
相等的。查看图像时也会反映这一点,但不知何故在内部不再相等XLOOKUP
。
解决这种情况的简单方法是添加第五个参数:1
,但它表明公式有时有效;为什么不总是有效?
出了什么问题?我该如何修复?
答案1
问题是您正在寻找完全匹配,但 B 列中的值肯定不会总是完全匹配,因为它们是计算出来的。
例如,B3 中的“34.00%”以纯十进制形式显示在单元格中为“.3400”,但作为计算值,它几乎肯定会有所不同。例如,“.340025698532”仍将显示为“34.00%”,但保留其实际值。
(还有另一种计算值不同的方式,这是由于 Excel 以编程方式获取我们输入的十进制数字并使用二十进制算术来计算它们,但我认为这有点深奥。请注意,这不是“不常见”,只是“深奥”。)
因此,当您限制XLOOKUP
寻找精确匹配时,通常不会成功,并且您的""
参数将像圣诞节的一块煤。
偶尔可能会有匹配,但是...
在您正在做的事情的(明显)结构中,您几乎肯定需要将G3
其变成$G$3
。并且范围可能需要相同的处理,但是VBasic2008
建议使用允许SPILL
为您工作的范围将解决该部分问题。
VBasic2008
建议使用四舍五入到零小数位,这几乎是正确的,但需要指出的是,显示的百分比(如您所显示的百分比)不是整数部分加上两位小数。相反,它们不是整数部分和四位小数。因此,当您四舍五入时,您需要四舍五入到2
小数位,以便查找“45%”之类的值。如果您四舍五入到 0 位小数,您将在“.00”条目列表中查找“.45”(四舍五入后)。
顺便说一句,不要对实际数据应用四舍五入,而是在公式中应用:
=XLOOKUP($G$3, ROUND(B1:B26, 2), E1:E26, "")
还请记住,在值为“60.65%”的列表中查找“65%”将失败,即使四舍五入也会将其提高到“61%”。
结果是公式并不works sometimes; why not always
像您拥有的那样。就像一幅时钟画,它永远都不会起作用。这幅画每天不会准确一两次。这是一幅画,不是时钟,它从不给出时间。它看起来给出了正确的时间,但由于它根本没有给出任何时间,所以它不是。您的公式,按照设计,完全不是一个按照您的要求执行的公式,因此它看起来正确的时间并非如此,因为它只是距离看似匹配的随机结果只有一丝之差。您需要做的就是使用第五个参数,因为它是设计用来使用的,它将是一个按照您的要求执行的公式。
好吧,这和处理您的查找值和您正在查找的值不完全匹配的事实有关。但是该参数中还有其他选择,它们可以处理您的查找值和数据之间的不匹配,而无需舍入任何内容。例如,如果您将该参数设置为“-1”,它将找到该值(如果完全匹配)或下一个低于该值的值。“1”它将找到它,或者下一个更高的值。