Excel列自动填充增加两步而不是一步

时间:2018-02-14 20:41:16

标签: excel excel-vba excel-formula vba

在单元格B2中,我有以下公式

=VLOOKUP($A2,Sheet1!A:B,2,0)

现在,如果我在单元格C2中向右自动填充,则公式变为

=VLOOKUP($A2,Sheet1!B:C,2,0)

但我希望它成为

=VLOOKUP($A2,Sheet1!C:D,2,0) i.e. C:D instead of B:C (two step increment)

以及

=VLOOKUP($A2,Sheet1!E:F,2,0)

在单元格D2和etcetera中多达或多于3000列。

如何实现这一目标?一个VBA宏就可以了,但如果可能的话,我宁愿不使用宏。

2 个答案:

答案 0 :(得分:2)

使用非易失性INDEX()

=VLOOKUP($A2,INDEX(Sheet1!$A:$HZZ,1,(COLUMN(A:A)-1)*2+1):INDEX(Sheet1!$A:$HZZ,1040000,(COLUMN(A:A)-1)*2+2),2,FALSE)

答案 1 :(得分:1)

您可以使用OFFSET

=VLOOKUP($A2, OFFSET(Sheet1!$A:$B, 0, 2*(Column()-2)), 2, FALSE)

这将从目标范围$A:$B开始,然后向下移动0行和2*(Column()-2)列。对于B / C / D,这将是0/2/4列