Tenho dois instantâneos de dados em tabelas grandes em duas planilhas diferentes. Basicamente as planilhas têm conteúdo idêntico, mas os números são de momentos diferentes. Preciso calcular o delta entre esses momentos.
Como calcular facilmente o delta (por exemplo, subtrair cada célula da planilha 1 da planilha 2 e armazenar o resultado na respectiva célula da planilha 3)? As células não numéricas têm conteúdo idêntico e devem ser copiadas como estão.
Eu preferiria algo que funcionasse com o LibreOffice Calc, mas poder fazer isso com o MS Excel é aceitável.
Responder1
O código a seguir comparaFolha1paraPlanilha2. SeFolha1contiver texto ou espaços em branco, essas células serão copiadas diretamente paraFolha3. SeFolha1células contêm números, então o código subtrai o valor dePlanilha2e armazena a diferença emFolha3:
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
Responder2
Se bem entendi, a estrutura das duas tabelas é a mesma, apenas os dados nela contidos são diferentes, e você só deseja calcular a diferença entre os dados e adicioná-los à terceira tabela.
Fiz uma amostra de dados relativamente simples, você só precisa usar a fórmula simplesmente na terceira pasta de trabalho:"=Planilha2!XX-Planilha1!XX"