Age
,我如何获取与A14相同的Age[5]
。我可以编写"
=A14
",但我想编写类似于"=Age$5
"的代码或类似的内容。Age
,我如何获取与A14相同的Age[5]
。=A14
",但我想编写类似于"=Age$5
"的代码或类似的内容。你可以使用Excel中的Index
函数:
=INDEX(Age, 5)
你知道是否有一种方法可以使此公式与相对选择配合使用,以便可以在同一列中“向下拖动”/应用于多个单元格吗?
为了使这样的选择变得相对,请在INDEX公式中使用ROW公式作为行号,并使用COLUMN公式作为INDEX公式中的列号。下面是一个例子,以使其更清晰:
=INDEX(named_range,ROW(A1),COLUMN(A1))
假设命名范围从A1开始,此公式仅通过引用单元格的行和列号来索引该范围。由于该引用是相对的,因此当您向下或向侧面拖动单元格时,它会发生变化,这使得轻松创建整个单元格数组成为可能。
row(A1)
和column(A1)
只是产生坐标(1,1)
,你用它来索引你命名范围中的第一个单元格。如果命名范围
不从A1开始,它也会起同样的作用。 - AnjoMan我会有几种不同的方法来实现这个:
1) 使用命名区间模仿Excel表格
在您的示例中,您将范围 A10:A20
命名为“Age”。根据您希望如何引用该范围中的单元格,您可以使用(如@Alex P所写)=INDEX(Age, 5)
或者如果您想引用与公式在同一行上的“Age”范围中的单元格,只需使用:
=INDEX(Age, ROW()-ROW(Age)+1)
=INDEX(Age, ROW())
2) 使用Excel表格
或者,如果您将其设置为Excel表格,并将“Age”作为Age列的标题,则右侧列中的公式可以使用以下公式:
=[@[Age]]
我一直想在一个所有行都相同且通常引用同一行中其他单元格的表格中使用类似这样的东西,但随着公式变得复杂,对其他列的引用变得难以阅读。
我尝试了其他答案中给出的技巧,例如将A列命名为“销售”,可以将其称为INDEX(Sales;row())
,但我觉得有点太长了。
然而,在这种特殊情况下,我发现仅使用Sales
也同样有效 - Excel(这里是2010)会自动获取相应的行。
它似乎也适用于其他范围; 例如,假设我在A2:A11
中有值,我将其命名为Sales
,我可以在B2:11
中只使用=Sales*0.21
,它将使用相同的行值,输出十个不同的结果。
我还在此页面上发现了一个好技巧:命名范围也可以是相对的。回到您最初的问题,如果您的值“年龄”在A列中,并且假设您在同一行的公式中使用该值,则可以将Age定义为$A2而不是$A$2,以便在例如B5或C5中使用时,它实际上将引用$A5。(名称管理器始终显示相对于当前选择的单元格的引用)
AgeIndex
。=sum( Age * (1 * (AgeIndex = 5) )
{=sum( Age * (1 * (AgeIndex = 5) )}
=INDEX(PayDates.xlsx!EJ_PAYDATES_2021,1,1) // Jan
=INDEX(PayDates.xlsx!EJ_PAYDATES_2021,2,1) // Feb
=INDEX(PayDates.xlsx!EJ_PAYDATES_2021,3,1) // Mar
这允许从另一个电子表格文件中读取范围[0]等的特定元素。目标文件无需打开。在上面的示例中,范围命名为EJ_PAYDATES_2021,其中包含该范围内每个月的一个元素。
我花了一些时间来解析它,但它有效,并且是上面提出的问题的答案。