对不起,如果之前有人询问,但我找不到它.我正在寻找可用作参考的所有有效字符串的权威描述,例如"A1:C5","$ A:$ A",$ A2"等等.这似乎是一个非常基本的东西,但我浪费了几个小时试图找到它.我所能找到的只是一堆"有用"的例子,但没有参考.
这似乎是一个有趣的练习。我将尽可能多地列出,希望其他人可以指出我忘记/错过/不知道的那些。
您所要求的某种指南,以及寻找其他文档的任何人的来源: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 中的数据进行比较,如果它们匹配或不匹配,则给出真/假。公式可以很容易地横向和向上/向下滑动以进行额外的比较。
$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
("What instance is this one?") 结合使用时,例如,如果您有 = Sum($A$1:A2) 在 C1,你把它移到 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 - 第 1 行 - 第 1 行 OR [1] - 我们距当前单元格向下 1 行 C - 列 1 - 第 1 列 OR [1] - 我们距当前单元格 1 列
换句话说,如果您没有括号,则您是在引用有问题的单元格或列。如果您确实有括号,则您有一个相对引用。
细胞参考:
R3C7
是绝对引用 - 第 3 行第 7 列。这与$G$3
A1 样式中的说法相同,如上所述。
R[3]C7
部分是绝对参考,部分是相对参考。这是要求“给我从当前单元格向下 3 行的单元格,在第 7 列”(即 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
Run Code Online (Sandbox Code Playgroud)
********* 正在施工?**********
我不知道是否有格式列表,因为实际上只有2种:A1格式和R1C1格式。当您使用 A1:C3 时,您实际上并未指定范围格式,因为 : 实际上是范围运算符。
$A$1、$A1、A$1 的变体只是 - 变体,标识在复制引用时 $ 之前的坐标不应更改,但否则坐标可能会相对于副本发生更改。
R1C1 更复杂,因为它允许相对论。R3C2 是对第 3 行第 2 列(A1 表示法中的 B3)的绝对引用,而在 R1C1 引用中使用大括号 [] 表示它是相对于单元格 R3C2 中的当前单元格 R[-2]C[1]将给出 R1C3 (C1)。
差点忘了。还可以引用另一个工作表中的单元格。'表2'!IV256
我用
(((\w*)|(\'[^\']*\')|(\"[^\"]*\"))!)?\$?([a-z]{1,3})\$?(\d+)
Run Code Online (Sandbox Code Playgroud)
作为用于识别 A1 格式的单元格引用的正则表达式
归档时间: |
|
查看次数: |
5676 次 |
最近记录: |