为vlookup使用动态列号

时间:2017-03-03 21:28:10

标签: excel vlookup

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

例如:

  

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

     

a3 = ID

     

b3 = Jan分配$

     

c3 = Jan Act $

     

d3 = 2月分配$

     

e3 = 2月行动$

     

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

其中vlookup公式中的2实际引用了地址' Z1'存储列号的位置(这最终将是基于月份和计算工作表中所有其他数据开始值的偏移量的计算数字)。然后,这将随着' Z1'中的值而变化。更改,而无需每月更改所有公式。

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

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

2 个答案:

答案 0 :(得分:0)

如果您的Z1条目“02”(二月)表示您想要返回 D 列(二月分配),请使用:

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

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

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

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

答案 1 :(得分:0)

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

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