Excel引用当前单元格

Ste*_*ven 63 excel worksheet-function

如何获取当前单元格的引用?

例如,如果我想显示列A的宽度,我可以使用以下内容:

=CELL("width", A2)
Run Code Online (Sandbox Code Playgroud)

但是,我希望公式是这样的:

=CELL("width", THIS_CELL)
Run Code Online (Sandbox Code Playgroud)

Ric*_*ica 38

创建一个名为THIS_CELL的命名公式

  1. 在当前工作表中,选择单元格A1(这很重要!)
  2. 打开Name Manager(Ctl + F3)
  3. 点击 New...
  4. 输入"THIS_CELL"(或只是"这个",这是我的偏好) Name:
  5. 输入以下公式 Refers to:

    =!A1

    注意:确保选中单元格A1.该公式与ActiveCell相关.

  6. Scope:选择下Workbook.

  7. 单击OK并关闭Name Manager

完全按照您的意愿使用工作表中的公式

=CELL("width",THIS_CELL)
Run Code Online (Sandbox Code Playgroud)

编辑:比使用更好的解决方案INDIRECT()

值得注意的是,我给出的解决方案应优先于使用该INDIRECT()功能的任何解决方案,原因有两个:

  1. 它是非易失性的,而且INDIRECT()是一个易变的Excel函数,因此当它被大量使用时会大大减慢工作簿的计算速度.
  2. 它更简单,并且不需要将地址(以形式ROW() COLUMN())转换为对地址的范围引用并再次返回到范围引用.

编辑:另请参阅此问题以获取有关工作簿范围,工作表相关命名范围的更多信息.

编辑:另请参阅@ imix的答案,了解此想法的变体(使用RC样式参考).在这种情况下,你可以使用=!RCTHIS_CELL命名范围的公式,或者只是使用RC直接.


imi*_*mix 37

几年太晚了:

为了完整起见,我想再给出一个答案:

首先,转到Excel-Options - > Formulas并启用R1C1引用.然后用

  =CELL("width", RC)
Run Code Online (Sandbox Code Playgroud)

RC 始终引用当前行,当前列,即"此单元格".

Rick Teachey的解决方案基本上是一种调整,以便在A1参考风格中实现相同的功能(另请参阅GSerg对Joey的回答的评论,并注意对Patrick McDonald的回答).

干杯
:-)

  • 顺便说一句.宽度实际上只取决于当前列,也可以用`= CELL("width",C)`来询问`其中`C`基本上是"当前列"(因为`R`是"当前行") . (2认同)
  • 哇,非常感谢,瑞克!现在我可以在任何地方写评论,我可以编辑社区维基.这真的很棒,而且对我来说更加自由.我会明智地使用武力8-) (2认同)

Pat*_*ald 32

你可以用

=CELL("width", INDIRECT(ADDRESS(ROW(), COLUMN())))
Run Code Online (Sandbox Code Playgroud)

  • 这使公式变得不稳定.因此,如果存在非易失性解决方案,请不要使用此解决方案. (5认同)
  • 应该注意的是CELL函数已经是易失性的,因此用于计算当前单元格的方法是否易变,不会影响函数的波动性(在这种情况下) (3认同)
  • @Jonathan 这里有一个解释:http://www.decisionmodels.com/calcsecretsi.htm (3认同)

小智 28

=ADDRESS(ROW(),COLUMN(),4) 将给出我们当前单元格的相对地址. =INDIRECT(ADDRESS(ROW(),COLUMN()-1,4))将给我们当前单元格左侧单元格 =INDIRECT(ADDRESS(ROW()-1,COLUMN(),4))的内容将给出我们当前单元格上方单元格的内容(非常适合计算运行总计)

使用CELL()函数返回有关已更改的最后一个单元格的信息.因此,如果我们输入新的行或列,CELL()引用将受到影响,并且不再是当前单元格.


Joe*_*oey 7

A2 已经是相对参考,并且在移动单元格或复制公式时将更改.


小智 7

=ADDRESS(ROW(),COLUMN())
=ADDRESS(ROW(),COLUMN(),1)
=ADDRESS(ROW(),COLUMN(),2)
=ADDRESS(ROW(),COLUMN(),3)
=ADDRESS(ROW(),COLUMN(),4)
Run Code Online (Sandbox Code Playgroud)


Cos*_*Rus 5

没有INDIRECT(): =CELL("width", OFFSET($A$1,ROW()-1,COLUMN()-1) )