2010-06-04 2 views
10

죄송합니다. 이전에 질문했지만 찾을 수 없으면 죄송합니다. 나는 "A1 : C5", "$ A : $ A", $ A2 "기타 등과 같이 참조로 사용할 수있는 모든 유효한 문자열에 대한 권위있는 설명을 찾고 있습니다. 찾을 수있는 것은 "도움이되는"예제지만 참조가없는 늪이다.신뢰할 수있는 Excel 범위 구문 참조

+0

당신은 또한 R1C1의 notatnion 예제를 찾고 있습니다? – Marek

+0

또한 list_name [column], list_name [#Headers] [column]에 대한 테이블 스타일 참조가 있습니다. 정말 전체 목록을보고 싶습니다. R1C1 정규식보다 훨씬 큽니다. –

+1

http://office.microsoft.com/en-us/excel-help/using-structured-references-with-excel- tables-HA010155686.aspx –

답변

0

형식 목록이 있는지 정말 모르겠지만 실제로는 2 : A1 형식 만 있기 때문에 . (가) 때문에 C3 : 당신은 A1을 사용할 때와 R1C1 형식 당신은 실제로 범위 형식을 지정하지 않을 실제로 범위 연산자입니다

의 변형을 $ A $ 1, $ A1은, A $ 1은 그냥이다 - 변종. $를 변경하기 전에 참조를 복사 할 때 좌표를 식별하지만 그렇지 않으면 좌표가 사본과 관련하여 변경 될 수 있음을 확인하십시오.

R1C1은 상대성을 허용하기 때문에 더 복잡합니다. R3C2는 행 3, 열 2 (A1 표기법의 B3)에 대한 절대 참조이며 R1C1 참조에서 중괄호 []를 사용하면 셀 R3C2의 현재 셀 R [-2] C [1]에 상대적임을 나타냅니다 R1C3 (C1)을 제공 할 것이다.

거의 잊어 버렸습니다. 다른 워크 시트의 셀에 대한 참조가있을 수도 있습니다. '시트 2'! IV256는

은 내가 A1 형식으로 셀 참조를 식별하기위한 정규 표현식으로

(((\w*)|(\'[^\']*\')|(\"[^\"]*\"))!)?\$?([a-z]{1,3})\$?(\d+) 

를 사용

+3

감사하지만 그것이 내가 찾고있는 권위있는 참조는 아니며, 알 수 있듯이 가능성을 설명하기 시작하기까지 꽤 많은 문장이 필요합니다. A : A (전체 열), 1 : 1 (행 전체) 그리고 아마도 내가 모르는 다른 것들. 이 범위 구문을 (분명히) 어디에서나 지정할 수 있어야한다는 사실을 절대적으로 알지 못합니다. 레거시 Microsoft API에 대한 문서화 표준 * this *? Cornelius : 예, RC 스타일, 즉 모든 유효 범위 문자열도 OP에서 제공 한 예에 국한되지 않습니다. – olefevre

+0

호기심 ... 그 정규 표현식은 무엇을 사용하고 있습니까? –

+0

@belisarius 셀 참조를 식별하기 위해 PHPExcel 계산 엔진에서 사용합니다. 즉, 직선 열 또는 행 참조 (예 : 수식에서 B : B 또는 1 : 1)를 적극적으로 지원하지는 않지만 셀 참조를 식별하는 데 사용됩니다. 워크 시트에 새 행이나 열을 삽입 할 때 수정이 필요할 수 있습니다. –

0

문제는 사업자 (범위, 교차, 암시 적 교차 다양한 있다는 것입니다 유효한 범위 참조를 제공하기 위해 모두 참조 해제 될 수있는 함수 (INDEX, OFFSET, CHOOSE, INDIRECT + 사용자 정의 함수), 정의 된 이름 및 구조화 된 테이블 참조 등. 따라서 완벽한 작업을 수행하려면 임의의 Excel 수식을 파싱해야합니다. 또한 Excel 버전에 따라 다릅니다.

표준 명시 적 범위 참조로 작업하려는 경우 일반적인 트릭은 문자열을 R1C1 표기법으로 변환하여 작업하는 것입니다. R1C1 참조 구문은 Excel 설명서에 자세히 설명되어 있습니다.

어딘가에 사용할 수있는 Excel 수식의 BNF 설명이 있지만 참조를 잘못 표시했습니다.

+1

예, 다양한 범위 반환 함수가 있지만 범위 리터럴에 대해 특별히 질문했습니다. – olefevre

+0

@Charleswilliams가 염두에두고있는 BNF가 [여기] (http://homepages.ecs.vuw.ac.nz/~elvis/db/Excel.shtml) 인 것으로 의심됩니다. 그것은 권위가 없지만 지난 10 년 동안 본 모든 것을 다루는 R1C1과 Range 구문의 간결한 설명을 포함합니다. –

0

행/열이 Excel을 삽입하는 경우 "그것은 워크 시트에 새 행 또는 열을 삽입 할 때 수정해야 할 수도 셀 참조를 식별하기 위해 사용되는"다른를 사용하여 통합 문서에 해킹에 반대 (살 응용 프로그램), 모든 참조는 새 주소로 자동 업데이트됩니다.

0

이것은 재미있는 연습처럼 보입니다. 내가 할 수있는 한 많은 것을 열거 할 것이고, 다른 사람들은 내가 잊어 버렸거나 잊어 버린/알지 못했던 것을 지적 해 주길 바란다.

당신이 요구하는지에 대한 가이드 A-의 종류 및 추가 documentaion을 찾는 사람을위한 소스 : 나는 5 개 가지 범주로 시작하는거야 http://www.excelfunctions.net/Excel-Reference-Styles.html

- 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을 참조합니다.

유용한 예 : 모든 숫자에 대한 상수입니다.

범위 참조 :

인해 범위 참조 조합의 투명한 수, 나는 가장 일반적인에 sicking입니다. 범위 참조 유형과 셀 참조 유형을 혼합하고 매칭하면 모든 조합을 얻을 수 있습니다. 우리가 숫자 부분에있어 무엇 칼럼 - - 우리가 $에있어 어떤 행 - 부분을 잠금 직후

A1:B2 - 참고

Alphanumberic 부분을 다음과 같이

A1 참조가 세분화된다 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에 잠겨 있습니다. 당신이 = 합계가있는 경우 예를 들어,

약간 덜 있습니다 알려져 행의 ($ A : : $의 A) (C1)에, 그리고 당신이 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 - 첫 번째 행 전체. 완전히 잠겼습니다. 당신이있는 경우 = 합계를 예를 들어, ($ 1 : $ 1) C2에, 당신은 D3로 이동, 그것은뿐만 = 합계 남아있을 것입니다 ($ 1 : $ 1)

R1C1 참조하는

R1C1이의 더 좌표 스타일과 반대되는 참조 스타일. 이것은 모든 셀의 수식이 완전히 똑같아 보이고 VBA에서 슬라이딩 수식을 훨씬 쉽게 입력하기 때문에 매우 유용 할 수 있습니다.

R1C2은 같은 분류됩니다 :

R - 행을 1 - 1 행 또는 [1] - 우리는 1 행 아래 우리의 현재 셀 C에서있어 - 열 1 - 1 열 또는 [1] - 현재 셀에서 1 열 이상 있습니다.

즉, 대괄호가없는 경우 문제가되는 셀이나 열을 참조하고 있습니다. 대괄호가 있으면 상대 참조가 있습니다.

셀 참조 :

R3C7 절대 기준 인 - 3 행 7 열. 위와 같이 A1 스타일로 $G$3이라고 말하는 것과 같습니다.

은 부분적으로 절대적으로 부분적으로 상대적인 참조이다. 이것은 "현재 셀에서 셀 3 행을 줄"(열 G)입니다.이 셀 A1에 있으면 셀 G4를 참조하게됩니다. 셀 B2로 이동하면 셀 G5를 참조하게됩니다.

R[2]C[-2]은 완전한 상대 참조입니다. - 부호로 표시된 것처럼 이전 열이나 행을 참조 할 수도 있습니다. 셀 C1에이 수식이 있으면 셀 A3을 참조하게됩니다. 수식을 D2로 이동하면 셀 B4를 참조하게됩니다.

범위 참조 :

표 참조

테이블은 다른 세포를 참조하고 쉽고 직관적 범위. 그들은 다음과 같이 세분화하고 있습니다 :

TABLENAME [의 ColumnName]

공식

VBA이야

편지에서 열을 VBA 변환

뭔가를 참고 참고 몇 번 올 때 열 번호가 열 문자로 변경됩니다. VBA에서 쉽게 사용할 수 있도록 열 번호를 열 문자로 변환하기 위해이 유용한 코드 조각 (Stack Overflow에있는 어딘가에 현재 편리한 링크가 없습니다)을 발견했습니다. 건설 **********에서

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 

*********