【问题标题】:Using a dynamic column number for a vlookup使用动态列号进行 vlookup
【发布时间】:2017-03-04 06:04:35
【问题描述】:

我的电子表格每个月都有一个 Allocated 列和一个 Actual 列。随着最终报告的运行和月份的变化,我想让我的 vlookup 自动使用运行报告的月份的值(在地址“z1”中输入)作为从中提取数据的列。

例如:

z1 = 02(用于在 2 月运行报告)

a3 = ID

b3 = 一月分配的 $

c3 = 一月法案 $

d3 = 2 月分配的 $

e3 = 二月法案 $

a10 = vlookup('ID123',A:E,2,false)

vlookup 公式中的 2 实际上引用了存储列号的地址“Z1”(这最终将是基于月份计算得出的数字,并且在给定工作表中的所有其他数据的情况下值开始的偏移量)。然后,这将随着“Z1”中的值的变化而变化,而无需每月更改所有公式。

我设想它看起来像:=vlookup('ID123',A:E,z1,false)

当我使用上述内容时出现#ref 错误。谢谢

【问题讨论】:

  • 使用双引号而不是单引号。
  • 并确保 Z1 是一个数字,而不是看起来像数字的文本。

标签: excel vlookup


【解决方案1】:

如果您的 Z1 条目“02”(二月)意味着您要返回列 D(二月已分配),则使用:

=vlookup("ID123",A:Y,z1*2,false)

否则,如果您想返回列 E(2 月法案),请使用:

=vlookup("ID123",A:Y,z1*2+1,false)

这意味着 Z1 可以始终包含月份编号01-12,并且 vlookup 中的一点点数学运算将重新解释为所需的 col_index_num。我还将数据表范围从 A:E 更改为 A:Y 以包括完整的 12 个月范围......有点猜测。

【讨论】:

  • 谢谢你的工作,不知道为什么我尝试时单元格引用不起作用。
  • 王牌,谢谢。如果您满意,请不要忘记“接受”答案:-)
【解决方案2】:

您可以使用与“Allocated $”或“Act $”连接的MATCH(lookup_value, lookup_array, match_type) 函数来查找列号。

=VLOOKUP("ID123",A:E,MATCH(Z1&" Act $",3:3,0),FALSE)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-20
    • 1970-01-01
    • 2019-02-20
    • 1970-01-01
    • 2019-10-20
    • 2019-05-06
    • 1970-01-01
    • 2014-10-19
    相关资源
    最近更新 更多