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“