Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Dúvidas sobre cálculos, funções simples e aninhadas, fórmulas matriciais, etc.
  • Avatar do usuário
#35418
Bom dia!

Possuo uma coluna com diversos valores positivos e negativos. Todos os números negativos obrigatoriamente possuem um número positivo igual.

Alguém sabe alguma forma de excluir as linhas que possuem essas duplas iguais (apenas com sinais diferentes)?

Em anexo, uma coluna simples e ao lado a coluna resultante desejada, após a exclusão desses "semelhantes".

Obrigado a todos.
Você não está autorizado a ver ou baixar esse anexo.
#35420
Se você quiser experimentar uma solução via macro instale o código abaixo em um módulo comum do seu arquivo Excel, assim:
1. copie o código daqui
2. a partir da planilha em que estão os dados tecle 'Alt+F11' para acessar o editor de VBA
3. no menu do editor >> Inserir >> Módulo
4. cole o código na janela em branco que vai se abrir
5. feito! 'Alt+Q' para retornar para a planilha e testar

para rodar o código:
6. tecle 'Alt+F8' >> selecione a macro correspondente >> Executar, ou insira um botão na planilha e vincule-o à macro ou vincule-a a um atalho de teclado (Alt+F8 > Opções).
Código: Selecionar todos
Sub ExcluiLinhas()
 Dim c As Long, d As Range
  For c = Cells(Rows.Count, 3).End(3).Row To 3 Step -1
   Set d = Range("C2:C" & c).Find(-Cells(c, 3))
    If Not d Is Nothing Then
     Rows(c).Delete: Rows(d.Row).Delete
    End If
  Next c
End Sub
#35429
RenanSimao

Confere se desta forma esta correto para você com formula


Se minha resposta foi útil, clique em obrigado é uma forma de agradecimento da ajuda

Decio
Você não está autorizado a ver ou baixar esse anexo.
#35430
osvaldomp escreveu:Se você quiser experimentar uma solução via macro instale o código abaixo em um módulo comum do seu arquivo Excel, assim:
1. copie o código daqui
2. a partir da planilha em que estão os dados tecle 'Alt+F11' para acessar o editor de VBA
3. no menu do editor >> Inserir >> Módulo
4. cole o código na janela em branco que vai se abrir
5. feito! 'Alt+Q' para retornar para a planilha e testar

para rodar o código:
6. tecle 'Alt+F8' >> selecione a macro correspondente >> Executar, ou insira um botão na planilha e vincule-o à macro ou vincule-a a um atalho de teclado (Alt+F8 > Opções).
Código: Selecionar todos
Sub ExcluiLinhas()
 Dim c As Long, d As Range
  For c = Cells(Rows.Count, 3).End(3).Row To 3 Step -1
   Set d = Range("C2:C" & c).Find(-Cells(c, 3))
    If Not d Is Nothing Then
     Rows(c).Delete: Rows(d.Row).Delete
    End If
  Next c
End Sub
Foi muito útil. Obrigado!

Estou tentando adequar para minha planilha. A coluna seria a X (número 24) e os números possuem vírgula.

Adequei da seguinte forma:

Sub ExcluiLinhas3()
Dim c As Long, d As Range
For c = Cells(Rows.Count, 24).End(24).Row To 24 Step -1
Set d = Range("X6:X" & c).Find(-Cells(c, 24))
If Not d Is Nothing Then
Rows(c).Delete: Rows(d.Row).Delete
End If
Next c
End Sub

Mas estou recebendo erro "Erro em tempo de execução '1004':.

Seria porque o tipo de declaração "Long" seria apenas para números inteiros? Consegue me ajudar com esse detatlhe?

Obrigado!
#35431
Deciog escreveu:RenanSimao

Confere se desta forma esta correto para você com formula


Se minha resposta foi útil, clique em obrigado é uma forma de agradecimento da ajuda

Decio
Olá Decio. Boa tarde.

Agradeço o empenho, mas por esta fórmula está retornado o número 4, que não deveria, pois ele possui um simétrico (-4).

Mas muito obrigado.
#35432
RenanSimao escreveu: Estou tentando adequar para minha planilha. A coluna seria a X (número 24) e os números possuem vírgula.
Disponibilize uma amostra do seu arquivo Excel com estrutura e dados iguais aos da planilha na qual você vai aplicar a macro :?

dica - para responder clique em +Resposta localizado abaixo da última postagem, só clique em Responder com citação se necessário.
#35433
Osvaldo, segue em anexo!

A coluna a ser modificada é a X, todas as outras foram apagadas para facilitar o entendimento.

Agradeço a atenção e a dica.

Abraços
Você não está autorizado a ver ou baixar esse anexo.
#35434
Experimente o código abaixo no lugar do anterior.
Código: Selecionar todos
Sub ExcluiLinhas()
 Dim c As Long, d As Range
  Application.ScreenUpdating = False
   For c = Cells(Rows.Count, 24).End(3).Row To 3 Step -1
    Set d = Range("X2:X" & c - 1).Find(-Cells(c, 24), lookat:=xlWhole)
     If Not d Is Nothing Then
      Rows(c).Delete: Rows(d.Row).Delete
     End If
   Next c
  Application.ScreenUpdating = True
End Sub
RenanSimao escreveu:Todos os números negativos obrigatoriamente possuem um número positivo igual.
Verifique pois restam vários números negativos após rodar o código e não deveria.
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord