두 시트 사이에서 빼는 방법(델타 계산)은 무엇입니까?

두 시트 사이에서 빼는 방법(델타 계산)은 무엇입니까?

두 개의 서로 다른 시트에 있는 큰 테이블에 두 개의 데이터 스냅샷이 있습니다. 기본적으로 시트의 내용은 동일하지만 숫자는 시점이 다릅니다. 이 순간들 사이의 델타를 계산해야 합니다.

델타를 쉽게 계산하는 방법(예: 시트 2에서 시트 1의 각 셀을 빼고 결과를 시트 3의 각 셀에 저장)? 숫자가 아닌 셀의 내용은 동일하므로 그대로 복사해야 합니다.

저는 LibreOffice Calc에서 작동하는 것을 선호하지만 MS Excel에서 이 작업을 수행할 수 있는 것도 허용됩니다.

답변1

다음 코드는 비교합니다.시트1에게시트2. 만약에시트1텍스트나 공백이 포함된 경우 이러한 셀은시트3. 만약에시트1셀에 숫자가 포함되어 있으면 코드는 다음에서 값을 뺍니다.시트2차이를 저장합니다.시트3:

Sub BigDelta()
    Dim s1 As Worksheet, s2 As Worksheet, s3 As Worksheet
    Dim rng As Range, addy As String, v As Variant, cell As Range

    Set s1 = Sheets("Sheet1")
    Set s2 = Sheets("Sheet2")
    Set s3 = Sheets("Sheet3")
    Set rng = s1.UsedRange

    For Each cell In rng
        addy = cell.Address
        v = cell.Value
        If v = "" Then
        ElseIf IsNumeric(v) Then
            s3.Range(addy) = v - s2.Range(addy)
        Else
            s3.Range(addy) = v
        End If
      Next cell
End Sub

답변2

제가 올바르게 이해했다면 두 테이블의 구조는 동일하고 그 안의 데이터만 다르며 데이터 간의 차이를 계산하여 세 번째 테이블에 추가하기만 하면 됩니다.

저는 비교적 간단한 샘플 데이터를 만들었습니다. 세 번째 통합 문서에서 "=Sheet2!XX-Sheet1!XX" 공식만 사용하면 됩니다.

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

관련 정보