2017-03-03 90 views
0

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

例如:

Z1 = 02(运行在月报告)

A3 = ID

B3 =一月分配$

C3 =一月法案$

d3 =二月份分配$

E3 =二月法$

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

其中VLOOKUP式中的2实际上引用此最终将基于计算出的数,其中的列号是存储在地址“Z1”(该月份以及工作表中所有其他数据的开始位置的偏移量)。这将随着'Z1'中的值改变而改变,而不需要每个月改变所有的公式。

我想象它看起来是这样的:=vlookup('ID123',A:E,z1,false)

我得到一个#REF错误,当我使用上面。由于

+2

使用双引号而不是单引号。 –

+0

并确保Z1是一个数字,而不是看起来像一个数字的文本。 –

回答

0

如果“02”(2月)您的Z1进入意味着你想返回列d(2月分配),然后使用:

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

否则,如果你想返回列Ë(二月法),然后使用:

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

这意味着Z1可以始终包含月份数字01-12和数学在VLOOKUP的点点就会reinter pret到所需的col_index_num。我还将数据表范围从A:E更改为A:Y,以包含完整的12个月范围......猜测。

+0

谢谢你的工作,不知道为什么当我尝试它时单元格引用不起作用。 – user3140367

+0

王牌,谢谢。如果您满意,不要忘记“接受”答案:-) – David

0

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

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