'CELL TO THE LEFT'를 참조하는 Excel 수식


86

값이 왼쪽 셀의 값과 다른 경우 셀 색상이 변경되도록 조건부 서식을 지정하려고합니다 (각 열은 한 달이고 각 행은 특정 개체에 대한 비용입니다. 모니터링하고 싶습니다. 수개월에 걸쳐 쉽게 가격이 변경됩니다.)

셀 단위로 할 수 있고 서식을 드래그하여 드래그 할 수 있지만 일반 수식을 전체 워크 시트에 적용하고 싶습니다.

감사!


3
... 그리고 누군가가 그것을 찾고있는 경우를 대비하여 ... 열을 오른쪽으로 가져 오기 위해 :=INDIRECT("RC[1]",0)
prograhammer

이것은 아주 좋은 질문입니다. 안타깝게도 원본 포스터가 조건부 서식을 수행 한 다음 각 셀에 서식 페인터를 붙여 넣지 않고도 셀을 변경하기를 원했습니다. 행에 월이 있고 열에 바나나, 사과 및 오렌지가 있다고 가정 해 봅시다. 매트릭스에는 가격이 있습니다. 전월에서 이번 달로 가격이 변경되면 자동으로 셀 레드 색상을 지정하는 작업을 수행 할 수 있습니까? 가격이 내려 가면 셀을 녹색으로, 빨간색으로 자동으로 색칠하는 방법도 있다면
Bryan

답변:


96
=OFFSET(INDIRECT(ADDRESS(ROW(), COLUMN())),0,-1)

14
간단한 A1 또는 RC [-1] 상대 참조 대신 거의 사용되지 않는 사용 조회 필요 함수 5 개를 사용하십니까? 그것은 Walla Walla WA에서 경유지로 Brooklyn에서 Bronx로 여행하는 것과 같습니다!
John Machin

5
왜이 대신 = INDIRECT (ADDRESS (ROW (), COLUMN () - 1))
프로 메테우스

1
"간접"에는 (1) 단일 스레드 및 (2) 휘발성 (전체 통합 문서가 변경 될 때마다 다시 계산하도록 계단식 강제 적용) 등 (이에 국한되지 않음) 많은 문제가 있습니다. 성능이 중요한 경우에는 사용하지 마십시오. .
John Joseph

조건부 서식에서 규칙을 다음과 같이 설정 ="OFFSET(INDIRECT(ADDRESS(ROW(), COLUMN())),0,-1)=""xyz"""했지만 셀의 서식이 지정되지 않았습니다. 뭐가 문제 야?
지퍼

81

가장 짧은 가장 호환되는 버전은 다음과 같습니다.

=INDIRECT("RC[-1]",0)

"RC [-1]"은 왼쪽에 한 열을 의미합니다. "R [1] C [-1]"은 왼쪽 하단입니다.

두 번째 매개 변수 0은 첫 번째 매개 변수가 R1C1 표기법을 사용하여 해석됨을 의미합니다.

다른 옵션 :

=OFFSET(INDIRECT(ADDRESS(ROW(), COLUMN())),0,-1)

제 생각에는 너무 깁니다. 그러나 상대 값이 동적이거나 다른 셀에서 파생 된 경우 유용합니다. 예 :

=OFFSET(INDIRECT(ADDRESS(ROW(), COLUMN())),0, A1)

가장 간단한 옵션 :

= RC[-1]

옵션을 사용하여 R1C1 표기법을 켜야한다는 단점이 있습니다. 이는 다른 사람들이 엑셀을 사용해야 할 때 진행되지 않습니다.


11

조건부 서식을 만들 때 원하는 항목 (전체 시트)에 적용 할 범위를 설정 한 다음 왼쪽 상단 모서리 만 서식을 지정하는 것처럼 상대 수식 을 입력 ( $기호 제거)합니다 .

Excel은 그에 따라 나머지 셀에 서식을 올바르게 적용합니다.

이 예에서 B1에서 시작하는 왼쪽 셀은 A1이됩니다. 고급 공식이 필요하지 않습니다.


당신이 뭔가 더 고급을 찾고 있다면, 당신은 함께 놀러 수 column(), row()indirect(...).


7

R1C1 표기법 (도구 | 옵션, 일반 탭)을 사용하도록 셀 참조를 변경하면 간단한 표기법을 사용하여 셀에 붙여 넣을 수 있습니다.

이제 공식은 간단합니다.

=RC[-1]

5

매우 긴 글을 쓰는 대신 :

=OFFSET(INDIRECT(ADDRESS(ROW(), COLUMN())),0,-1)

다음과 같이 간단히 작성할 수 있습니다.

=OFFSET(*Name of your Cell*,0,-1)

따라서 예를 들어 Cell B2에 쓸 수 있습니다 .

=OFFSET(B2,0,-1)

B1 셀 참조

여전히 감사합니다 Jason Young !! 나는 당신의 대답 없이는이 해결책을 결코 생각해 내지 못했을 것입니다!


2
이것은 유용하지 않습니다. 셀이 B2라는 것을 이미 알고 있다면 왼쪽 셀에 대해 B1을 쓰고 오프셋을 전혀 사용하지 않을 수 있습니다. 요점은 완전히 일반적인 일을하는 것입니다.
매튜 읽기

1
시작하는 셀을 알고 있으면 매우 편리하며 수행하려는 오프셋 만 동적으로 = OFFSET (B2,0, A2)라고 말합니다. 내가 그것을 사용한 맥락이었습니다.
Sam Fed

이것이 제가 찾던 답입니다! 누군가가 전체 행을 나타내는 단일 셀을 선택하고 해당 행의 매개 변수를 사용하도록 모든 것이 자동으로 변경되도록 할 수 있기를 원했습니다. 감사!
BT

1

다음 공식으로 A1 셀을 채 웁니다 .

 =IF(COLUMN(A1)=1;"";OFFSET(A20;0;-1))&"1"

그런 다음 오른쪽으로 자동 확장하면

 1|  A  |  B  |  C  |  ect ect
 2|    1|   11|  111|  ect ect

오프셋이 사용 가능한 셀 범위를 벗어나면 #REF! 오류.

즐기시기 바랍니다.


1

더 간단합니다.

=indirect(address(row(), column() - 1))

OFFSET은 현재 참조에 상대적인 참조를 반환하므로 간접적으로 올바른 참조를 반환하는 경우 필요하지 않습니다.


이러지 마세요. INDIRECT는 종속성 트리를 파괴합니다. 이것은 재앙입니다.
Ollie2893

방금 열의 첫 번째 행에 따라 조건부 서식에 유용하다고 생각하는이 함수를 발견했습니다. RC [] 표기법이 작동하는지 확실하지 않음
narrowtux

1

사용자 정의 함수를 만들 때 기능 OFFSET과 관련된 다른 답변은 INDIRECT적용 할 수 없다는 것을 알았습니다 .

대신 Application.Caller사용자 정의 함수 (UDF)가 사용 된 셀을 참조하기 위해를 사용해야 합니다. 두 번째 단계에서는 열의 인덱스를 해당 열의 이름으로 변환합니다.
마지막으로 활성 워크 시트의 범위 함수를 사용하여 왼쪽 셀을 참조 할 수 있습니다 .

Function my_user_defined_function(argument1, argument2)
    ' Way to convert a column number to its name copied from StackOverflow
    ' http://stackoverflow.com/a/10107264
    ' Answer by Siddarth Rout (http://stackoverflow.com/users/1140579/siddharth-rout)
    ' License (if applicable due to the small amount of code): CC BY-SA 3.0
    colName = Split(Cells(, (Application.Caller(1).Column - 1)).Address, "$")(1)

    rowNumber = Application.Caller(1).Row

    left_cell_value = ActiveSheet.Range(colName & rowNumber).Value

    ' Now do something with left_cell_value

0

선택 항목의 조건부 서식을 변경하는 VBA 스크립트를 사용할 수 있습니다 (조건 및 서식을 적절하게 조정해야 할 수도 있음).

For Each i In Selection
i.FormatConditions.Delete
i.FormatConditions.Add Type:=xlCellValue, Operator:=xlLess, Formula1:="=" & i.Offset(0, -1).Address
With i.FormatConditions(1).Font
    .Bold = True
End With
Next i

0

나는 항상 "왼쪽의 셀"을 참조하고 싶었지만 비 휘발성 방식 (오프셋, 간접 및 유사한 재해 없음)으로 CRUCIALLY로 참조하고 싶었 기 때문에이 스레드를 우연히 발견했습니다. 웹을 위아래로 보면 대답이 없습니다. (이 스레드는 실제로 답변을 제공하지 않습니다.) 제가이 커뮤니티와 공유하고 싶은 가장 놀라운 방법을 발견했습니다.

E6에서 시작 값이 100이라고 가정합니다. F5에이 값에 대한 델타를 입력한다고 가정합니다 (예 : 5). 그런 다음 F6 = E6 + F5에서 연속 값 (105)을 계산합니다. 다른 단계를 추가하려면 간단합니다. F 열을 G 열에 복사하고 G5에 새 델타를 입력하면됩니다.

이것이 우리가 주기적으로하는 일입니다. 각 열에는 날짜가 있으며 이러한 날짜는 반드시 시간순이어야합니다 (MATCH 등을 지원하기 위해). 매번 우리가 단계에 들어가는 것을 잊는 경우가 자주 발생합니다. 이제 생략을 따라 잡기 위해 F와 G 사이에 열을 삽입하고 F를 새 G에 복사 (연속 공식을 다시 채우기 위해)한다고 가정합니다. 이것은 전체 재앙의 짧지 않습니다. 시도해보세요-H6은 이제 = F6 + H5라고 말하고 NOT (절대적으로 필요하므로) = G6 + H5를 말합니다. (새로운 G6가 정확합니다.)

이 작업을 수행하기 위해 가장 놀라운 방식으로이 평범한 계산을 난독화할 수 있습니다. F6 = index ($ E6 : F6; 1; columns ($ E1 : F1) -1) + F5. 바로 복사하면 G6 = index ($ E6 : G6; 1; columns ($ E1 : G1) -1) + G5가됩니다.

이건 절대 안되죠? 명확하게 순환 참조! 그것을 시도하고 놀라십시오. Excel은 INDEX 범위가 우리가 다시 계산하는 셀에 걸쳐 있지만 해당 셀 자체가 INDEX에 의해 처리되지 않으므로 순환 참조를 만들지 않는다는 것을 인식하는 것 같습니다.

이제 나는 집에 있고 건조합니다. F와 G 사이에 열을 삽입하면 필요한 정보를 정확히 얻을 수 있습니다. 이전 H의 연속 값은 새 G에 삽입 한 연속 값을 다시 참조합니다.



0

명명 된 수식 "LeftCell"만들기

비 휘발성 답변을 찾는 사람들은 명명 된 수식에서 INDEX 함수를 사용하여이를 수행 할 수 있습니다.

  1. 셀 A2 선택

  2. 열기 Name Manager(Ctrl + F3)

  3. 딸깍 하는 소리 New

  4. 이름을 'LeftCell'(또는 원하는대로)으로 지정합니다.

  5. 에 대해 Scope:선택Workbook

  6. 에서는 Refers to:수식을 입력

    =INDEX(!A1:!A2, 1)

  7. 클릭 OK후 닫기Name Manager

이렇게하면 Excel에서 항상 현재 셀의 바로 왼쪽에있는 값을보고 다른 셀이 선택되면 동적으로 변경됩니다. 이름이 단독으로 사용되면 셀의 값을 제공하지만 범위에서는 참조를 사용합니다. 아이디어에 대한 셀 참조에 대한 이 답변 에 대한 크레딧 .


0

이것이 가장 쉬운 대답이라고 생각합니다.

오프셋을 참조하려면 "이름"을 사용하십시오.

열 (Column A)을 합계를 포함하는 셀 (예 : Cell A100)까지 포함하지 않고 합계를 원한다고 가정합니다. 이 작업을 수행:

(이름을 만들 때 참조하는 A1을 사용하고 있다고 가정합니다. R1C1은 나중에 전환 될 수 있습니다.)

  1. 시트의 맨 윗줄이 아닌 아무 곳이나 클릭하십시오 (예 : Cell D9).
  2. "OneCellAbove"라고하는 명명 된 범위를 정의하되 'RefersTo'상자를 "= D8"(따옴표 없음)로 덮어 씁니다.
  3. 이제 Cell A100에서 공식을 사용할 수 있습니다.
    = SUM (A1 : OneCellAbove)

-1

전체 시트를 선택하고 홈> 스타일-조건부 서식, 새 규칙 ..., 수식을 사용하여 서식을 지정할 셀을 결정 하고 다음 수식이 참인 경우 값 서식을 지정 하십시오 . :

=A1<>XFD1

Format..., 형식 선택 OK,, OK.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.