每隔一列上的VLOOKUP()
我有一个时间系列,在图表dataset
有不匹配的date:
我想使用VLOOKUP
在每个date返回价格,或者如果价格不可用,按以下方式错误:
我想对第一行使用下面的公式:
=IFERROR(VLOOKUP($A1,dataset!A:B,2,FALSE), "ERROR") =IFERROR(VLOOKUP($A1,dataset!C:D,2,FALSE), "ERROR") =IFERROR(VLOOKUP($A1,dataset!E:F,2,FALSE), "ERROR")
我只在上面的例子中显示3列,但在实际的表中,我有超过1000列。 将第一个公式拖到右边实际上给出:
=IFERROR(VLOOKUP($A1,dataset!A:B,2,FALSE), "ERROR") =IFERROR(VLOOKUP($A1,dataset!B:C,2,FALSE), "ERROR") =IFERROR(VLOOKUP($A1,dataset!C:D,2,FALSE), "ERROR")
这不是我想要的,我想要的列是A:B
, C:D
, D:E
, F:G
等。有没有办法将这个公式扩展到1000列?
我可能会过度思考,但这应该工作:
=IFERROR(VLOOKUP($A1,INDEX(datasheet!$A:$AAZ,0,1+(COLUMN(A:A)-1)*2):INDEX(datasheet!A:AAZ,0,2+(COLUMN(A:A)-1)*2),2,FALSE),"ERROR")
把它放在数据输出的左上angular,并上下拖动。 它应该为每一个被拖动的每一列增加两列。
您可能需要将$AAZ
更改为数据集的最后一列。
这表明该公式的基本工作原理:
我用公式:
=VLOOKUP(1,INDEX($A:$AAZ,0,1+(COLUMN(A:A)-1)*2):INDEX(A:AAZ,0,2+(COLUMN(A:A)-1)*2),2,FALSE)
在I2中拖动它。