¿Cómo restar (calcular delta) entre dos hojas?

¿Cómo restar (calcular delta) entre dos hojas?

Tengo dos instantáneas de datos en tablas grandes en dos hojas diferentes. Básicamente las hojas tienen contenido idéntico pero los números son de diferentes momentos del tiempo. Necesito calcular el delta entre estos momentos de tiempo.

¿Cómo calcular fácilmente el delta (por ejemplo, restar cada celda de la hoja 1 de la hoja 2 y almacenar el resultado en la celda respectiva de la hoja 3)? Las celdas no numéricas tienen contenido idéntico y deben copiarse tal cual.

Preferiría algo que funcione con LibreOffice Calc, pero poder hacerlo con MS Excel es aceptable.

Respuesta1

El siguiente código comparaHoja1aHoja2. SiHoja1contiene texto o espacios en blanco, estas celdas se copian directamente aHoja3. SiHoja1las celdas contienen números, luego el código resta el valor deHoja2y almacena la diferencia enHoja3:

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

Respuesta2

Si entendí correctamente, la estructura de las dos tablas es la misma, solo los datos que contienen son diferentes y solo desea calcular la diferencia entre los datos y agregarlos a la tercera tabla.

Hice una muestra de datos relativamente simple, solo necesitas usar la fórmula simplemente en el tercer libro: "=Hoja2!XX-Hoja1!XX"

ingrese la descripción de la imagen aquí

información relacionada