首页 > 解决方案 > 向下拖动公式并更改列的引用(索引+匹配)

问题描述

我需要以下公式的帮助:

=INDEX(Sheet2!A2:A11,MATCH(Sheet1!Q5,Sheet2!C2:C11,0)+0)

(这部分需要更改列引用:Sheet2!C2:C11,0)+0)

每当我向下拖动它时,我都需要更改列引用。我试过这个:

=INDEX(Sheet2!$A$2:$A$12,MATCH(Sheet1!Q4,OFFSET(Sheet2!$A$2:$A$12,0,ROW(O$4:O4)-1),0)+0)

但它总是想出#N/A

我尝试了其他主题的解决方案,但找不到使用indexand的解决方案match

PS。我的公式从单元格开始O5

你能建议吗?

非常感谢

标签: excel-formula

解决方案


一般来说,如果您想在向下拖动时更改列引用,请使用 and 的组合INDEXROW例如

= INDEX($1:$1,ROW())

当公式被向下拖动时,这将在第一行中进一步向右抓取值。

您还可以修改它以INDEX返回一个范围(而不仅仅是一个单元格)以用作另一个公式的一部分,例如

= INDEX($1:$5,0,ROW())

这将返回一个 5x1 数组,该数组在公式被向下拖动时向右移动。(0上式中的表示选择范围内的所有$1:$5。)

在您的公式中,您可以尝试替换它:

Sheet2!C2:C11

有了这个:

INDEX(Sheet2!$2:$11,0,ROW()+<offset>)

<offset>您需要的必要偏移量在哪里。

如果您的公式开始于O5并且您希望第一个公式获取该C列,我想<offset>应该是-2. 这是因为ROW()is O55但您希望该单元格获取第三列(因此您需要减去 2)。然后,当您向下拖动到 时O6,公式的该部分将计算为Sheet2!D2:D11,而在单元格O7中,它将计算为Sheet2!E2:E11,等等。

所以你的最终公式应该是:

= INDEX(Sheet2!A2:A11,MATCH(Sheet1!Q3,INDEX(Sheet2!$2:$11,0,ROW()-2),0)+0)

推荐阅读