MS Excel 2016 - 열 문자 빼기

MS Excel 2016 - 열 문자 빼기

아래 셀 A1에 현재 수식이 있는데 여기서 열 문자를 새 셀 B1에 빼거나 빼야 합니다. 나는 이 게시물을 읽었지만 작업을 수행할 수 없습니다. Excel에서 열 문자를 더하거나 빼거나 늘리는 방법은 무엇입니까?

예를 들어 열 B 값을 생성하려면 수식이나 매크로가 필요합니다. 열 A와 동일하지만 열 문자 하나를 빼거나 뺍니다.

    Column A        | Column B  
    =+Jan!$V$36     | =+Jan!$U$36
    =+Jan!$AD$36    | =+Jan!$AC$36
    =+Jan!$AH$36    | =+Jan!$AG$36

답변1

귀하의 수식 +에는 불필요하며 필요하지 않습니다.

다음은 변경된 수식을 인접한 열에 배치하는 UDF입니다.

가정:

  • 단일 셀 참조만으로 표시하므로 수식이 간단합니다.
  • 셀 참조는 항상 수식의 끝 부분에 있습니다.
  • 셀 참조는 항상 절대 주소 지정 모드를 사용합니다.
  • 일을 더 간단하게 만들기 위해
    • VBA에서는 R1C1 표기법을 사용합니다.
    • 문자열의 끝에서부터 역순으로 검색합니다.C
    • 이를 통해 1수정된 수식을 얻기 위해 빼는 열 번호가 제공됩니다.

이는 게시된 데이터가 실제 데이터와 일치하지 않는 경우 변경할 수 있는 충분한 정보를 제공합니다.

*워크시트에 다시 쓰면 A1표기법으로 다시 변환됩니다.

Option Explicit
Sub prevCol()
    Dim R As Range, C As Range
    Dim WS As Worksheet
    Dim sForm As String
    Dim lColPos As Long, lColNum As Long

Set WS = Worksheets("sheet3") 'or wherever you have the formulas
With WS
    Set R = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp))
End With

For Each C In R
    If C.HasFormula Then
        sForm = C.FormulaR1C1

        'assuming column number is at the end
        lColPos = InStrRev(sForm, "C")
        lColNum = Mid(sForm, lColPos + 1, 9)
        C.Offset(0, 1).FormulaR1C1 = Left(sForm, lColPos) & lColNum - 1
    End If
Next C

End Sub

여기에 이미지 설명을 입력하세요

관련 정보