例如,在一个表达式中,而不是写地址,我怎么能写这样的A1
东西:A(B1)
B1 = 1
。
3 回答
我认为另一种解释 INDIRECT 作用的方式是:
如果该范围有效,它将文本转换为范围。
例如,如果您有文本 A1,它将引用 A1。如果你有文本 C2:C100,你会得到这个范围。
现在,在 excel 中以范围形式生成文本的最常见方法之一是连接。因此,如果将A
和1
( CONCATENATE("A","1")
) 连接起来,就会得到 A1。
您可以在此连接中使用引用。假设单元格 B1 包含 1。
=CONCATENATE("A",B1)
给出文本 A1。
因此,要获取单元格 A1,您可以使用:
=INDIRECT(CONCATENATE("A",B1))
除了CONCATENATE()
现在的功能有点长,但不要担心!您可以使用&
:
=INDIRECT("A"&B1)
效果也一样。
如果您C
在 A1 和32
B1 中有更复杂的内容,要引用 cell C32
,您可以执行以下操作:
=INDIRECT(A1&B1)
这给出了=INDIRECT("C"&"32")
,=INDIRECT("C32")
最后=C32
`INDIRECT' 是您需要使用的功能。
从文档中:
句法:
间接(参考;A1)
Ref 表示对要为其返回内容的单元格或区域(以文本形式)的引用。
A1(可选)- 如果设置为 0,则使用 R1C1 表示法。如果此参数不存在或设置为 0 以外的其他值,则使用 A1 表示法。
例子
如果 A1 包含 C108 作为参考并且单元格 C108 包含值 100,则=INDIRECT(A1)等于 100。
=SUM(INDIRECT("a1:" & ADDRESS(1;3)))对 A1 区域中的单元格进行总计,直到地址由第 1 行和第 3 列定义的单元格。这意味着对 A1:C1 区域进行总计.
=OFFSET(B1, 0, 1)
OFFSET(参考, 行偏移, 列偏移, 区域高度默认为1, 区域宽度默认为1)
示例 1.我们有乘法表,出于某些愚蠢的原因需要使用 OFFSET 找到答案。
A B C D E F
1 1 2 3 4 5
---------------
2 1 | 1 2 3 4 5
3 2 | 2 4 6 8 10
4 3 | 3 6 9 12 15
5 4 | 4 8 12 16 20
6 5 | 5 10 15 20 25
假设我们需要 2x4 =OFFSET(A1, 2, 4) 或者在这种情况下切换数字同样有效 =OFFSET(A1, 4, 2)
示例 2. 让我们计算前面乘法表中所有大于等于 2 的数字的总和。=SUM(偏移量(A1, 2, 2, 4, 4))