Wie kann man zwischen zwei Blättern subtrahieren (Delta berechnen)?

Wie kann man zwischen zwei Blättern subtrahieren (Delta berechnen)?

Ich habe zwei Daten-Schnappschüsse in großen Tabellen auf zwei verschiedenen Blättern. Im Grunde haben die Blätter identischen Inhalt, aber die Zahlen stammen aus unterschiedlichen Zeitpunkten. Ich muss das Delta zwischen diesen Zeitpunkten berechnen.

Wie lässt sich Delta einfach berechnen (z. B. jede Zelle auf Blatt 1 von Blatt 2 subtrahieren und das Ergebnis in der entsprechenden Zelle auf Blatt 3 speichern)? Nicht numerische Zellen haben identischen Inhalt und sollten unverändert kopiert werden.

Mir wäre etwas lieber, das mit LibreOffice Calc funktioniert, aber es wäre auch akzeptabel, wenn es mit MS Excel funktionieren würde.

Antwort1

Der folgende Code vergleichtBlatt1ZuTabelle 2. WennBlatt1enthält entweder Text oder Leerzeichen, werden diese Zellen direkt kopiert inBlatt3. WennBlatt1Zellen enthalten Zahlen, dann subtrahiert der Code den Wert vonTabelle 2und speichert die Differenz inBlatt3:

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

Antwort2

Wenn ich das richtig verstehe, ist die Struktur der beiden Tabellen gleich, nur die darin enthaltenen Daten sind unterschiedlich, und Sie möchten lediglich die Differenz der Daten berechnen und der dritten Tabelle hinzufügen.

Ich habe relativ einfache Beispieldaten erstellt, Sie müssen lediglich die Formel in der dritten Arbeitsmappe verwenden: „=Sheet2!XX-Sheet1!XX“

Bildbeschreibung hier eingeben

verwandte Informationen