25

例如,在一个表达式中,而不是写地址,我怎么能写这样的A1东西:A(B1)B1 = 1

4

3 回答 3

34

我认为另一种解释 INDIRECT 作用的方式是:

如果该范围有效,它将文本转换为范围。

例如,如果您有文本 A1,它将引用 A1。如果你有文本 C2:C100,你会得到这个范围。

现在,在 excel 中以范围形式生成文本的最常见方法之一是连接。因此,如果将A1( CONCATENATE("A","1")) 连接起来,就会得到 A1。

您可以在此连接中使用引用。假设单元格 B1 包含 1。

=CONCATENATE("A",B1)

给出文本 A1。

因此,要获取单元格 A1,您可以使用:

=INDIRECT(CONCATENATE("A",B1))

除了CONCATENATE()现在的功能有点长,但不要担心!您可以使用&

=INDIRECT("A"&B1)

效果也一样。

如果您C在 A1 和32B1 中有更复杂的内容,要引用 cell C32,您可以执行以下操作:

=INDIRECT(A1&B1)

这给出了=INDIRECT("C"&"32")=INDIRECT("C32")最后=C32

于 2013-10-07T15:20:15.533 回答
6

`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 区域进行总计.

于 2013-10-07T14:56:54.883 回答
2

=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))

于 2016-01-21T06:46:53.570 回答