ProgramingTip

현재 셀에 대한 Excel 참조

bestdevel 2020. 12. 3. 08:16
반응형

현재 셀에 대한 Excel 참조


현재 셀에 대한 참조는 어떻게 얻습니까?

예를 들어 A 열의 너비를 표시 할 수 있습니다.

=CELL("width", A2)

그러나 공식이 다음과 같기를 바랍니다.

=CELL("width", THIS_CELL)

THIS_CELL이라는 명명 된 수식 만들기

  1. 현재 워크 시트에서 A1 셀을 선택합니다 (중요합니다!).
  2. 열기 Name Manager(Ctl + F3)
  3. 딸깍하는 소리 New...
  4. "THIS_CELL"(또는 내가 선호하는 "THIS")을 입력합니다. Name:
  5. 다음 공식을 입력하십시오 Refers to:

    =!A1

    참고 : A1 셀이 선택되어 있는지 확인하십시오 . 이 공식은 ActiveCell에 최윤입니다.

  6. 아래에서 Scope:선택합니다 Workbook.

  7. 클릭 OK하고 닫습니다Name Manager

워크 시트의 수식을 원하는대로 정확하게 사용하십시오.

=CELL("width",THIS_CELL)

편집 : 사용하는 것보다 더 나은 솔루션INDIRECT()

INDIRECT()두 가지 가지 내가 제공하는 솔루션이 함수를 사용하는 솔루션보다 선호한다는 점은 주목할 가치가 있습니다 .

  1. 인증서 인증서 INDIRECT()인증서 Excel 함수 작성 사용하면 통합 문서 계산 속도가 크게 느려집니다.
  2. 훨씬 간단하며 주소 (형식 ROW() COLUMN())를 주소에 대한 범위 참조로 변환하고 다시 범위 참조로 다시 변환 할 필요가 없습니다 .

편집 : 통합 문서 범위의 시트 존재 명명 된 범위에 대한 자세한 내용 이 질문 을 참조하십시오.

편집 : 이 아이디어에 대한 변형은 아래 @imix의 답변을 참조하십시오 (RC 스타일 참조 사용). 이 경우에는 사용할 수 =!RC에 대한 THIS_CELL명명 된 범위 식 또는 사용 RC직접.


몇 년이 너무 늦었습니다.

완전성을 위해 또 다른 대답을하고 싶습니다.

먼저 엑셀 옵션 - > 수식 로 이동하여 R1C1를 참조 활성화 합니다. 그런 다음

  =CELL("width", RC)

RC 항상 현재 행, 현재 열, 즉 "이 셀"을 참조합니다.

Rick Teachey의 솔루션 은 기본적으로 A1 참조 스타일 에서 동일한 것을 가능하게하는 조정 입니다 ( Joey의 답변에 대한 GSerg의 의견참조 하고 Patrick McDonald의 답변에 대한 의견참고하십시오 ).

건배
:-)


당신은 사용할 수 있습니다

=CELL("width", INDIRECT(ADDRESS(ROW(), COLUMN())))

=ADDRESS(ROW(),COLUMN(),4)현재 셀의 상대 주소를 제공합니다. =INDIRECT(ADDRESS(ROW(),COLUMN()-1,4))현재 셀의 =INDIRECT(ADDRESS(ROW()-1,COLUMN(),4))내용을 제공합니다. 현재 셀 위에있는 셀의 내용을 제공합니다 (누계 계산에 적합).

CELL () 함수를 사용하면 변경된 마지막 셀에 대한 정보가 반환됩니다. 따라서 새 행이나 열을 입력하면 CELL () 참조가 영향을받으며 더 이상 현재 셀이 아닙니다.


A2 이미 상대 참조이며 셀을 이동하거나 수식을 복사 할 때 변경합니다.


간접 ()없이 : =CELL("width", OFFSET($A$1,ROW()-1,COLUMN()-1) )


=ADDRESS(ROW(),COLUMN())
=ADDRESS(ROW(),COLUMN(),1)
=ADDRESS(ROW(),COLUMN(),2)
=ADDRESS(ROW(),COLUMN(),3)
=ADDRESS(ROW(),COLUMN(),4)

테이블 내에서 [@](불행히도) Excel이 자동으로 확장 Table1[@]작동하는 것을 사용할 수 있습니다. (Excel 2010을 사용하고 있습니다)

를 들어 두 예 개의 열을 가진 때 [Change][Balance]이 퍼팅, [Balance]열 :

=OFFSET([@], -1, 0) + [Change]

물론 이것은 (대부분의 다른 솔루션과 많은) 행의 순서에 따라 다르지만.


이를 처리하는 가장 좋은 방법은 다음을 사용하는 것입니다.

Dim MyString as String
MyString = Application.ThisCell.Address
Range(MyString).Select

도움이 되셨기를 바랍니다.


더 안전하고 애플리케이션 속도를 늦추지 않는 더 좋은 방법이 있습니다. Excel을 설정하는 방법은 셀에 값이나 수식이있을 수 있습니다. 수식은 자체 셀을 참조 할 수 없습니다. 새로운 값으로 인해 다른 계산이 발생하는 무한 루프가 발생합니다. 도우미 열을 사용하여 다른 셀에 넣은 값을 기반으로 값을 계산합니다. 예를 들면 :

A 열은 참 또는 거짓이고, B 열에는 금전적 가치, C 열에는 다음 공식이 포함됩니다. = B1

이제 열 A가 True이고 열 B가 0보다 큰 경우에만 B 열이 조건부 형식으로 노란색으로 강조 표시됩니다.

= AND (A1 = 참, C1> 0)

그런 다음 C 열을 숨기도록 선택할 수 있습니다.


편집 : Cell ( "width")가 마지막으로 수정 된 셀 의 너비를 반환하기 때문에 다음이 잘못 되었습니다 .

Cell("width")현재 셀의 너비를 반환하므로 현재 셀에 대한 참조가 필요하지 않습니다. 그래도 필요 cell("address")하면 현재 셀의 주소를 반환하므로 현재 셀에 대한 참조가 필요하면 indirect(cell("address")). 문서 참조 : http://www.techonthenet.com/excel/formulas/cell.php

참고 URL : https://stackoverflow.com/questions/757413/excel-reference-to-current-cell

반응형