【发布时间】:2011-01-26 17:54:11
【问题描述】:
例如,我有一个命名范围 A10—A20 为Age;我如何获得与 A14 相同的Age[5]。
我可以写“=A14”,但我确实喜欢写“=Age$5”或类似的东西。
【问题讨论】:
标签: excel excel-formula named-ranges
例如,我有一个命名范围 A10—A20 为Age;我如何获得与 A14 相同的Age[5]。
我可以写“=A14”,但我确实喜欢写“=Age$5”或类似的东西。
【问题讨论】:
标签: excel excel-formula named-ranges
从 EJ_PAYDATES_2021 范围内读取特定日期(索引在最后一个“1”旁边)
=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,该范围内包含每个月的一个元素。
我花了一些时间来解析这个问题,但它确实有效,并且是上述问题的答案。
【讨论】:
我一直愿意在所有行都相同并且通常引用同一行中的其他单元格的工作表中使用类似的东西 - 但随着公式变得复杂,对其他列的引用变得难以阅读。
我尝试了其他答案中给出的技巧,例如名为“销售”的列 A,我可以将其称为 INDEX(Sales;row()),但我发现它对我的口味来说有点太长了。
但是,在这种特殊情况下,我发现单独使用 Sales 也可以正常工作 - Excel(此处为 2010)只会自动获取相应的行。
它似乎也适用于其他范围;例如,假设我在A2:A11 中有值,我将其命名为Sales,我可以在B2:11 中使用=Sales*0.21,它将使用相同的行值,给出十个不同的结果。
我还在this page 上发现了一个不错的技巧:命名范围也可以是相对的。回到您最初的问题,如果您的值“Age”在 A 列中,并且假设您在同一行的公式中使用该值,您可以将 Age 定义为 $A2 而不是 $A$2,以便在使用时例如,在 B5 或 C5 中,它实际上是指 $A5。 (名称管理器始终显示相对于当前选定单元格的引用)
【讨论】:
在左侧添加一列,以便 B10 到 B20 是您的命名范围 Age。
将 A10 设置为 A20,使 A10 = 1, A11= 2,... A20 = 11 并为 A10 到 A20 的范围命名,例如AgeIndex。
然后可以使用数组公式找到第 5 个元素:
=sum( Age * (1 * (AgeIndex = 5) )
由于它是一个数组公式,您需要按 Ctrl + Shift + Return 使其工作,而不仅仅是返回。这样做,公式将变成一个数组公式:
{=sum( Age * (1 * (AgeIndex = 5) )}
【讨论】:
我有几种不同的方法:
1) 使用命名范围模拟 Excel 表格
在您的示例中,您将范围命名为 A10:A20“Age”。根据您希望如何引用该范围内的单元格,您可以(如@Alex P 所写)使用=INDEX(Age, 5) 或者如果您想引用与公式在同一行的“Age”范围内的单元格,只需使用:
=INDEX(Age, ROW()-ROW(Age)+1)
这模仿了 Excel 表格中内置的相对参考功能,但如果您不想使用表格,这是一种替代方法。
如果命名范围是一整列,公式简化为:
=INDEX(Age, ROW())
2) 使用 Excel 表格
或者,如果您将其设置为 Excel 表格并键入“年龄”作为年龄列的标题,则年龄列右侧的列中的公式可以使用如下公式:
=[@[Age]]
【讨论】:
“您是否知道是否有一种方法可以通过相对选择来实现这一点,以便可以将公式“向下拖动”/应用于同一列中的多个单元格?”
要使这种选择相对简单,只需将 ROW 公式用于 INDEX 公式中的行号,将 COLUMN 公式用于 INDEX 公式中的列号。 为了更清楚地说明这一点,这里举个例子:
=INDEX(named_range,ROW(A1),COLUMN(A1))
假设命名范围从 A1 开始,此公式仅按引用单元格的行号和列号对该范围进行索引,并且由于该引用是相对的,因此当您将单元格向下或向一侧拖动时,它会发生变化,从而可以创建整个细胞阵列很容易。
【讨论】:
row(A1) 和 column(A1) 只生成坐标(1,1),您可以使用它来索引命名范围中的第一个单元格。如果named range 不是从 A1 开始,它的工作原理也是一样的。
可以使用Excel的Index函数:
=INDEX(Age, 5)
【讨论】: