使用命名范围 table 时 VLOOKUP 出现问题
Issue with VLOOKUP when using a named range table
我在让 excel 识别 VLOOKUP 公式中的 table 时遇到问题。这是我试图用来根据下拉列表中的选择显示当前数量的公式。
=IFERROR(VLOOKUP(K7,inventory,3,0),"")
其中 K7 是我根据 table、"inventory" 创建的下拉列表。我已将我的 table 命名为 "inventory" 并且我已尝试将我的 table 转换回范围并使用相同的错误重新列出数据。当我取出公式的 IFERROR("") 部分时,出现 #N/A 错误。我的 table 也有条件格式,即 highlights/bolds 行满足特定条件(列值大于另一个列值)。 table 与下拉列表位于同一个工作表中。目前我的工作簿中没有任何 VBA 代码或项目。
最终我想要做的是使用下拉列表获取 table 中的当前值,并通过添加或减去用户指定的数字来更改值。
Context Image
如果您的 table 被称为 "inventory",并且您想要基于 K7 中的值的 "QTY" 列中的值,请尝试以下公式。
=iferror(vlookup(k7,inventory[[#All],[Description]:[QTY]],3,false),"")
如果您想使用结构化 table 引用,请放弃 VLOOKUP 并改用 INDEX/MATCH 函数对。这将允许您更好地控制哪一列用于查找,哪一列用于检索。不必将公式包装在 IFERROR 中,因为正确配置的下拉列表应该 always return 一个值。
=index(inventory[qty], match(K6, inventory[description], 0))
很简单,在描述列中查找匹配项,return 相应数量列中的值。
您需要修改等式,因为您的 table 数组需要从查找值开始的位置开始(如果您使用的是 VLOOKUP。上面还有另一个同样有效的解决方案,它使用 INDEX/MATCH函数)。
您可以对这些函数进行更多控制,并可以引用您的 table,但缺点是这些方程式对于不那么 excel 的用户来说并不直观。您遇到了 VLOOKUP 的缺点,但普通 excel 用户更容易阅读和理解。 (道德是既有+/-)
=VLOOKUP(K7, C:E, 3, 0)
上面的等式将找到您的查找值 (K7) 和 return E 列中的相应值。如果您需要 F 列中的相应值,您可以按如下方式调整等式:
=VLOOKUP(K7, C:F, 4, 0)
我在让 excel 识别 VLOOKUP 公式中的 table 时遇到问题。这是我试图用来根据下拉列表中的选择显示当前数量的公式。
=IFERROR(VLOOKUP(K7,inventory,3,0),"")
其中 K7 是我根据 table、"inventory" 创建的下拉列表。我已将我的 table 命名为 "inventory" 并且我已尝试将我的 table 转换回范围并使用相同的错误重新列出数据。当我取出公式的 IFERROR("") 部分时,出现 #N/A 错误。我的 table 也有条件格式,即 highlights/bolds 行满足特定条件(列值大于另一个列值)。 table 与下拉列表位于同一个工作表中。目前我的工作簿中没有任何 VBA 代码或项目。
最终我想要做的是使用下拉列表获取 table 中的当前值,并通过添加或减去用户指定的数字来更改值。
Context Image
如果您的 table 被称为 "inventory",并且您想要基于 K7 中的值的 "QTY" 列中的值,请尝试以下公式。
=iferror(vlookup(k7,inventory[[#All],[Description]:[QTY]],3,false),"")
如果您想使用结构化 table 引用,请放弃 VLOOKUP 并改用 INDEX/MATCH 函数对。这将允许您更好地控制哪一列用于查找,哪一列用于检索。不必将公式包装在 IFERROR 中,因为正确配置的下拉列表应该 always return 一个值。
=index(inventory[qty], match(K6, inventory[description], 0))
很简单,在描述列中查找匹配项,return 相应数量列中的值。
您需要修改等式,因为您的 table 数组需要从查找值开始的位置开始(如果您使用的是 VLOOKUP。上面还有另一个同样有效的解决方案,它使用 INDEX/MATCH函数)。
您可以对这些函数进行更多控制,并可以引用您的 table,但缺点是这些方程式对于不那么 excel 的用户来说并不直观。您遇到了 VLOOKUP 的缺点,但普通 excel 用户更容易阅读和理解。 (道德是既有+/-)
=VLOOKUP(K7, C:E, 3, 0)
上面的等式将找到您的查找值 (K7) 和 return E 列中的相应值。如果您需要 F 列中的相应值,您可以按如下方式调整等式:
=VLOOKUP(K7, C:F, 4, 0)