为什么我的 INDEX/MATCH 函数返回错误值?

Why is my INDEX/MATCH function returning a wrong value?

我目前正在尝试在 Google 表格中制作序列号生成器,一切进展顺利。

但是,在最后的步骤中,我注意到我的一个函数 returning 了错误的值。

如您在 C9 中所见,return 是 AMS20-00001 值,尽管 A12:A13 中不存在 BBAS2。

我注意到这发生在我之前的一些工作表上,这让我想知道是什么原因造成的? return 不应该是 #N/A 或 #ERROR 吗?

如果有人能向我解释为什么会发生这种情况以及我能做些什么来解决它,我会很高兴。

适用于 Google 表格和 Microsoft Excel

There are three arguments in MATCH

  • 查找值
  • 查找数组
  • 匹配类型

MATCH(Lookup Value, Lookup Array, [Match Type])

Match type is optional and accepts one of three values

  • 1 = 精确或次小(默认值
  • 0 = 完全匹配
  • -1 = 完全相同或次大

您在公式中省略了匹配类型...

MATCH(A9,$A:$A)

这与使用默认匹配类型相同...

MATCH(A9,$A:$A,1)

未找到完全匹配项,因此您的公式返回了小于查找值的最接近值

使用 0 强制完全匹配

MATCH(A9,$A:$A,0)

In your example, this results in the expected error

=INDEX($E:$E,MATCH(A9,$A:$A,0))

使用 vlookup:

=ARRAYFORMULA(IFNA(VLOOKUP(A8:A10, A12:E, 5, 0)))