Excel拖拽公式时,如何让COLUMN函数实现列递增而非行递增?
解决Excel拖拽VLOOKUP公式时COLUMN参数横向递增的问题
问题场景
我在Excel中使用以下公式:
=VLOOKUP($A$8,'\Volumes\remax\BDM\Rapoarte : Analize\2023\[Date 2023.xlsx]GCI'!$A:$M,COLUMN(B2),0)
向下拖拽公式后,得到的结果是:
=VLOOKUP($A$8,'\Volumes\remax\BDM\Rapoarte : Analize\2023\[Date 2023.xlsx]GCI'!$A:$M,COLUMN(B2),0) =VLOOKUP($A$8,'\Volumes\remax\BDM\Rapoarte : Analize\2023\[Date 2023.xlsx]GCI'!$A:$M,COLUMN(B3),0) =VLOOKUP($A$8,'\Volumes\remax\BDM\Rapoarte : Analize\2023\[Date 2023.xlsx]GCI'!$A:$M,COLUMN(B4),0)
但我需要的是拖拽后COLUMN的列依次递增,结果如下:
=VLOOKUP($A$8,'\Volumes\remax\BDM\Rapoarte : Analize\2023\[Date 2023.xlsx]GCI'!$A:$M,COLUMN(B2),0) =VLOOKUP($A$8,'\Volumes\remax\BDM\Rapoarte : Analize\2023\[Date 2023.xlsx]GCI'!$A:$M,COLUMN(C2),0) =VLOOKUP($A$8,'\Volumes\remax\BDM\Rapoarte : Analize\2023\[Date 2023.xlsx]GCI'!$A:$M,COLUMN(D2),0)
我尝试过类似以下的公式,但没有解决问题:
=VLOOKUP($A$8,'\Volumes\remax\BDM\Rapoarte : Analize\2023\[Date 2023.xlsx]GCI'!$A:$M,COLUMN(M2)-COLUMN(B2)+1,0)
解决方案
要实现向下拖拽时让COLUMN的列横向递增,核心是固定引用单元格的行号,同时让列号随拖拽次数递增,以下是几种实用方法:
方法1:混合引用+行号偏移
把COLUMN(B2)改成COLUMN(B$2)固定行号,再结合ROW函数实现列偏移:
=VLOOKUP($A$8,'\Volumes\remax\BDM\Rapoarte : Analize\2023\[Date 2023.xlsx]GCI'!$A:$M,COLUMN(B$2)+ROW(A1)-1,0)
- 说明:
ROW(A1)向下拖拽时会依次返回1、2、3,加上COLUMN(B$2)的数值2再减1,最终得到2、3、4,对应B、C、D列的列号。
方法2:直接用ROW函数生成列数
如果不需要依赖具体单元格,直接用ROW函数生成目标列号:
=VLOOKUP($A$8,'\Volumes\remax\BDM\Rapoarte : Analize\2023\[Date 2023.xlsx]GCI'!$A:$M,ROW(A2),0)
- 说明:
ROW(A2)在第一行返回2,向下拖拽后依次返回3、4,正好对应B、C、D列的列号。若起始行不是第2行,调整A2为对应起始数值即可。
方法3:INDEX+MATCH替代VLOOKUP(更灵活)
如果需要更灵活的引用逻辑,可换用INDEX+MATCH组合:
=INDEX('\Volumes\remax\BDM\Rapoarte : Analize\2023\[Date 2023.xlsx]GCI'!$A:$M,MATCH($A$8,'\Volumes\remax\BDM\Rapoarte : Analize\2023\[Date 2023.xlsx]GCI'!$A:$A,0),COLUMN(B$2)+ROW(A1)-1)
内容的提问来源于stack exchange,提问作者davidpatron
相关产品推荐
相关产品推荐

