这似乎是一个有趣的练习。我将尽可能多地列出,希望其他人能够指出我忘记/错过/不知道的内容。
这是您所要求的指南,也是任何寻找其他文档的人的来源:http://www.excelfunctions.net/Excel-Reference-Styles.html http://www.excelfunctions.net/Excel-Reference-Styles.html
我将从 5 个大类开始 - A1、R1C1、表格、公式和 VBA 参考。我暂时将忽略其他可以与 Excel 交互的程序(尽管如果官方添加了 Python,我可能会添加它)
所有示例都将使用 A1 参考样式,因为它们对于没有经验的用户来说更直观。
A1 参考类型:
A1 样式告诉我们给定单元格的坐标。字母数字部分告诉我们我们所在的列,而数字部分告诉我们我们所在的行。
细胞参考:
-
A1
- 基本的单元格参考。引用单元格 A1,当您在列和行中拖动公式时,它会发生变化。例如,如果您的公式位于 C1 中,并且您将其移至 D2,那么它现在将引用 B2。
很好的用途:将两张纸相互比较。='Sheet1'!A1='Sheet2'!A1
将比较工作表 1 和工作表 2 中的数据,如果匹配或不匹配,则给出 true/false。公式可以轻松地向侧面和向上/向下滑动以进行额外的比较。
-
$A1
- 这会锁定该列。当您拖动公式时,行将发生变化,但列不会发生变化。如果您始终想在公式中引用同一列,则非常有用。例如,如果您的公式位于 C1 中,并且您将其移至 D2,则它现在将引用 $A2。
有用的示例:辅助列中的公式。A1 = $C1*2
会整齐地滑下来,没有任何问题,如果你把它移到 B 列,它会继续引用 C。
-
A$1
- 这会锁定该行。当您拖动公式时,列将发生变化,但行不会发生变化。如果您始终想在公式中引用同一行,则非常有用。例如,如果您的公式位于 C1 中,并且您将其移至 D2,则它现在将引用 B$1。
-
$A$1
- 这会锁定单元格引用。无论您如何拖动公式,它都会继续引用单元格 A1。例如,如果您的公式位于 C1 中,并且您将其移至 D2,则它现在将引用 $A$1。
有用的示例:所有数字的常数乘数。
总而言之,A1 参考文献细分如下:
- 字母数字部分 - 我们在哪一列
- 数字部分 - 我们在哪一行
- $ - 锁定紧随其后的部分
范围参考:
由于范围引用的组合数量众多,我坚持使用最常见的组合。将单元格引用类型与范围引用类型混合和匹配将得到每种组合。
-
A1:B2
- 引用单元格网格,A1 位于左上角,B2 位于右下角。公式的两个部分在移动时都会滑动。通常建议不要在应用于多个单元格的公式中解锁引用,因为引用范围也会移动。例如,如果 C1 中有 =Sum(A1:B2),并将其移动到 D2,它将转换为 =Sum(B2:C3)。
未锁定的范围引用最常导致 vlookup 公式出现问题,当人们向下滑动公式时,引用范围最终会发生变化。
-
$A$1:$B$2
- 引用单元格网格,A1 位于左上角,B2 位于右下角。即使移动,此范围参考也不会改变。例如,如果 C1 中有 =Sum($A$1:$B$2),并将其移动到 D2,它将转换为 =Sum($A$1:$B$2)
-
$A$1:A2
- 这会锁定第一个单元格,但使引用的第二部分保持灵活。当您想查看“到目前为止发生的所有事情”时,这非常有用 - 例如,如果您正在对列表进行编号,则与=countifs
(“这是什么出现的实例?”)例如,如果 C1 中有 =Sum($A$1:A2),并将其移动到 D2,它将转换为 =Sum($A$1:B3)
类似的效果可以与$A$1:B1
水平移动。
-
A:A
- 这给出了整个 A 列。由于它已解锁,因此它会滑动。对于抓取给定列中的所有内容很有用。例如,如果 C1 中有 =Sum(A:A),并将其移动到 D2,它将转换为 =Sum(B:B)
-
$A:A
- 这给出了整个 A 列。当您越过以获取更多列时,它会扩展。我想不出它的直接实际用途。例如,如果 C1 中有 =Sum($A:A),并将其移动到 D2,它将转换为 =Sum($A:B)
-
$A:$A
- 这给出了整个 A 列。即使您移动公式,它也被锁定到 A 列。例如,如果 C1 中有 =Sum($A:$A),并将其移至 D2,则它将保持为 =Sum($A:$A)
不太为人所知的是行:
-
1:1
- 整个第一排。已解锁。例如,如果 C2 中有 =Sum(1:1),并将其移动到 D3,它将转换为 =Sum(2:2)
-
$1:1
- 整个第一排。部分锁定。例如,如果 C2 中有 =Sum($1:1),并将其移动到 D3,它将转换为 =Sum($1:2)
-
$1:$1
- 整个第一排。完全锁定。例如,如果 C2 中有 =Sum($1:$1),并将其移至 D3,则它将保持为 =Sum($1:$1)
R1C1 参考文献
R1C1 更像是一种参考风格,而不是坐标风格。这非常有用,因为所有单元格中的公式看起来完全相同,并且使得在 VBA 中输入滑动公式变得更加容易。
R1C2 分解如下:
- R - Rows
- 1 - 第 1 行或
[1] - 我们距离当前单元格向下 1 行
- C - 柱
- 1 - 第 1 列或
[1] - 我们距离当前单元格多出 1 列
换句话说,如果没有括号,则表示您正在引用相关的单元格或列。如果确实有括号,那么您就有了相对引用。
细胞参考:
-
R3C7
是绝对参考 - 第 3 行、第 7 列。这就像说一样$G$3
A1 风格,如上所述。
-
R[3]C7
部分是绝对的,部分是相对的参考。这是要求“给我第 7 列中当前单元格向下 3 行的单元格”(即 G 列)如果我在单元格 A1 中有此单元格,我将引用单元格 G4。如果我将其移至单元格 B2,我将引用单元格 G5。
-
R[2]C[-2]
是一个完整的相对参考。您还可以引用较早的列或行,如-
符号。如果我在单元格 C1 中有这个公式,它将引用单元格 A3。如果我将公式移至 D2,我现在将引用单元格 B4。
范围参考:
表参考
表格使引用其他单元格和范围变得简单直观。它们细分如下:
公式参考
VBA 参考
从字母到列的 VBA 转换
出现过几次的问题是将列号更改为列字母。我发现这段非常有用的代码(在 Stack Overflow 上的某个地方,我目前没有方便的链接),可以将列号转换为列字母,以便于在 VBA 中使用。
Function Col_Letter(lngCol As Long) As String
'Converts a number (usually generated from an application.match function) to a letter. For example 1 turns into A, 5 turns into E, etc.
Dim vArr
vArr = Split(Cells(1, lngCol).Address(True, False), "$")
Col_Letter = vArr(0)
End Function
建设中*