source

'CELL TO THE LEFT'를 참조하기 위한 Excel 공식

myloves 2023. 4. 19. 00:43

'CELL TO THE LEFT'를 참조하기 위한 Excel 공식

값이 셀의 왼쪽 값과 다를 경우 셀 색상이 변경되도록 조건부 포맷을 수행하려고 합니다(각 열은 한 달, 각 행은 특정 객체에 대한 비용입니다).수개월에 걸친 가격 변동을 쉽게 감시하고 싶다.)

셀 단위로 포맷할 수 있지만, 워크시트 전체에 적용할 일반적인 수식을 원합니다.

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

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

=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 표기를 활성화해야 하는 단점이 있습니다.이것은 다른 사람이 Excel을 사용해야 할 때는 사용할 수 없습니다.

조건 포맷을 작성할 때 적용할 범위를 원하는 것(시트 전체)에 설정한 후 상대식을 입력합니다.$왼쪽 상단 모서리만 포맷하고 있는 것처럼 표시됩니다.

Excel은 그에 따라 나머지 셀에 적절하게 포맷을 적용합니다.

이 예에서는 B1부터 왼쪽 셀이 A1이 됩니다.그냥 사용해 고급 공식이 필요없어


발전된 것을 이 게임을 놀 수 요.column(),row() , , , , 입니다.indirect(...).

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

공식은 다음과 같습니다.

=RC[-1]

긴 글씨 대신:

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

간단하게 다음과 같이 쓸 수 있습니다.

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

예를 들어 셀 B2에 쓸 수 있습니다.

=OFFSET(B2,0,-1)

B1을 참조하다

그래도 고마워 제이슨 영!!당신의 답변이 없었다면 이 해결책을 생각해내지 못했을 거예요!

왜 그냥 사용하지 않는가?

=ADDRESS(ROW(),COLUMN()-1)

A1 셀에 다음 식을 입력합니다.

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

그리고 오른쪽으로 자동 확장하면

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

오프셋이 사용 가능한 셀의 범위를 벗어나면 #REF! 오류가 발생합니다.

재밌게 봐주세요.

한층 더 심플화:

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

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

선택 항목의 조건부 형식을 변경하는 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

이 스레드는 항상 "왼쪽 셀"을 참조하고 싶었지만 결정적으로 비휘발성(OFFSET, 간접적 재해가 없음) 방식으로 참조하고 싶었기 때문에 우연히 알게 되었습니다.웹을 위아래로 찾아봐도 답이 없습니다.(이 스레드도 실제로는 답을 제공하지 않습니다.)고민 끝에 이 커뮤니티와 공유하고 싶은 가장 놀라운 방법을 발견했다.

E6에서 시작 값이 100이라고 가정합니다.F5에 이 값의 델타(예: 5)를 입력한다고 가정합니다.그런 다음 연속 값(105)을 F6 = E6+F5로 계산합니다.다른 스텝을 추가할 경우 쉽게 컬럼 F를 컬럼 G에 복사하고 G5에 새로운 델타를 입력합니다.

이것이 우리가 주기적으로 하는 일입니다.각 열에는 날짜가 있으며, 이러한 날짜는 (매치 등에 도움이 되도록) 연대순으로 작성해야 합니다.종종 우리는 스텝을 입력하는 것을 잊는다.이제 F와 G 사이에 열을 삽입하고(누락을 만회하기 위해) F를 새 G에 복사하고(계속 공식에 다시 입력하기 위해) 싶다고 가정합니다.이것은 완전한 재앙이나 다름없다.시험해 보세요 - 이제 H6이 =F6+H5로 표시되고 NOT(절대 필요하지만) =G6+H5로 표시됩니다(새로운 G6이 맞음).

이 작업을 수행하기 위해, 우리는 가장 놀라운 방법으로 이 진부한 계산을 F6=지수($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에 삽입한 연속값을 참조합니다.

"LeftCell"이라는 이름의 수식을 만듭니다.

비휘발성 응답을 원하는 사용자는 INDEX 함수를 명명식으로 사용하여 이 작업을 수행할 수 있습니다.

  1. 셀 A2를 선택합니다.

  2. 열다.Name Manager(Ctrl+F3)

  3. 클릭New

  4. Left Cell(또는 원하는 것)이라고 이름 붙입니다.

  5. 위해서Scope:,선택한다.Workbook

  6. Refers to:수식을 입력합니다.

    =INDEX(!A1:!A2, 1)

  7. 클릭OK닫다Name Manager

그러면 Excel은 항상 현재 셀의 왼쪽 바로 옆에 있는 값을 살펴보도록 지시하며, 다른 셀이 선택되면 동적으로 변경됩니다.이름을 단독으로 사용하는 경우 셀의 값을 제공하지만 범위에서는 참조를 사용합니다.아이디어에 대한 셀 참조에 대한 이 답변은 신용할 수 있습니다.

이게 제일 쉬운 답인 것 같아요.

오프셋을 참조하려면 "이름"을 사용합니다.

합계를 유지하는 셀(셀 A100)까지 열(컬럼 A)을 모두 합산하는 경우(셀 A100이라고 함)은 다음과 같습니다.

(이름 작성 시 A1 참조를 사용하고 있을 것으로 생각됩니다.R1C1은 다음으로 전환할 수 있습니다.)

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

사용자 정의 함수를 만들 때, 나는 함수와 관련된 다른 답변이 있다는 것을 알게 되었다.OFFSET그리고.INDIRECT적용할 수 없습니다.

대신 User Defined Function(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

시트 전체를 선택하고 [HOME]> [ Styles ]- [ Conditional Formating ], [New Rule...]를 선택합니다.다음 수식참일 경우 포맷할 셀과 포맷 값결정합니다.

=A1<>XFD1

Format..., 포맷의 선택지를 선택합니다.

언급URL : https://stackoverflow.com/questions/507253/excel-formula-to-reference-cell-to-the-left