Página 1 de 1

Função CORRESP não funciona com critério "-1" (maior que)

Enviado: 30 Mar 2017 às 14:23
por rogerpenna
Boa tarde. Estava tentando usar essa função para achar a posição de números maiores que X, e todos lugares que eu vi, inclusive dentro do próprio Excel (quando se insere a fórmula através da caixa de fórmulas), indicam que 1 procura valores menores que X, 0 valores iguais a X e -1 valores MAIORES que X).

Resultado dava #N/D

Resolvi fazer um teste simples com 4 números em uma linha, uma célular com um número que mudo e uma célula com a fórmula.


10, 20, 30, 40

Primeiro lugar, aparentemente quando se usa 1, ele não retorna números menores, mas sim "menores ou iguais".

Pois se eu insiro 12 na célula de número de procura, o resultado é 1 (primeiro número:10). Se eu insiro 20, o resultado é 2.

Ou seja, ele não procura valores menores que 20, mas valores menores ou IGUAIS.


Bom, o argumento 0 funciona normal.


Mas o argumento para achar valores MAIORES simplesmente não funciona, mesmo num teste simples como esse.

No momento que coloco o número -1 como argumento, para achar valores maiores, o resultado é #N/D. Estamos falando do mesmo teste acima que funcionou com argumento 1 e 0!!

O que está acontecendo de errado aqui?

Re: Função CORRESP não funciona com critério "-1" (maior que

Enviado: 30 Mar 2017 às 14:36
por rogerpenna
Afff... acabei de descobrir pq não achava nada. Pra procurar um valor MAIOR que X, vc tem que INVERTER a ordem dos números (do maior para o menor). Sinceramente, bem ridículo isso, pq o Excel não dá a opção de pesquisar na ordem inversa ao invés de realmente ter que alterar a ordem?

Minha planilha real é de hodômetro de veículos vs dias em um calendário.

O odômetro dos veículos está sempre subindo e é assim que aparece ao longo dos 30 dias do calendário que criei. Não posso inverter a ordem senão para de fazer sentido.

Mas preciso achar a primeira posição cujo valor é menor que 50.

então tenho A1 =10, A2=20, A3=30, A4=40, A5=50.

Se usar o Corresp com argumento 1, ele me retorna 1, pois acha o primeiro valor com algum número abaixo de 50. O que eu quero entretanto é que retorne 4, que seria o último número ainda abaixo de 50.


(obs: por isso que eu estava tentando usar o argumento -1. Era -1 pro número 49, ou seja, eu estava tentando achar a célula cujo horímetro fosse maior que 49 (seja ela 50, 51, 53, 60 ou 100). E daí eu subtrairia 1 dessa célula. Ou seja, ele me acharia a posição 5 (50) e então eu subtrairia 1 dessa posição, virando 4. Ultima posição com um número menor que 50)

Como fazer isso?

Re: Função CORRESP não funciona com critério "-1" (maior que

Enviado: 30 Mar 2017 às 15:16
por babdallas
Veja se atende sua necessidade.

Erro bobo ( me ajudem)

Enviado: 30 Mar 2017 às 18:23
por mateusSilva
Olá Amigos, Boa noite!

Sou novo no Forúm e não sei se estou no lugar certo para criação de tópicos.


estou fazendo uma ferramenta de cadastro e não sei que besteira eu fiz, na hora de executar o codigo da magro da um erro
Imagem
gostaria que me ajudassem, o que fiz de errado ?
Código: Selecionar todos

Private Sub CommandButton1_Click()
    Dim C As Long
    Dim VApelido
    Dim VNome
    VErr = 0
    If Nome.Value = "" Then
        MsgBox "Informe a identificação do Cliente"
        Matrícula.SetFocus
        End If
    If Nome.Value = "" Then
        MsgBox "Nome do Usuário não pode ficar em branco"
        Nome.SetFocus
        End If
     
    Sheets("CADCLI").Select
    C = Worksheets("CADCLI").Cells(Worksheets("CADCLI").Rows.Count, 1).End(xlUp).Row + 1
    D = C - 1
    For N = 4 To D
       If Cells(N, 1) = Matrícula Then
          MsgBox "Já existe uma Matrícula com esta identificação"
          VErr = 1
          Nome.SetFocus
       End If
    Next N
   If VErr = 1 Then GoTo NoProc
   
    Cells(C, 1).Value = Matrícula.Value
    Cells(C, 2).Value = Nome.Value
    Cells(C, 3).Value = Endereço.Value
    Cells(C, 4).Value = Bairro.Value
    Cells(C, 5).Value = CEP.Value
    Cells(C, 6).Value = Município.Value
    Cells(C, 7).Value = ComboBox2.Value
    Cells(C, 8).Value = Telefone.Value
    Cells(C, 9).Value = Celular.Value
    Cells(C, 10).Value = Email.Value
    Cells(C, 11).Value = CPF.Value
    Cells(C, 12).Value = ComboBox3.Value
    Cells(C, 13).Value = ComboBox1.Value
    VApelido = frmApeCli.Value
    VNome = frmNomeCli.Value
    Sheets("MODELO").Select
    Sheets("MODELO").Copy Before:=Sheets("TABELAS")
    Sheets("MODELO (2)").Select
    Cells(2, 1).Value = VApelido
    Cells(2, 2).Value = VNome
    ActiveSheet.Name = VApelido
    frmApeCli.Value = ""
    frmNomeCli.Value = ""
    frmEndCli.Value = ""
    frmBaiCli.Value = ""
    frmCepCli.Value = ""
    frmCidCli.Value = ""
    frmTelCli.Value = ""
    frmCelCli.Value = ""
    frmMailCli.Value = ""
    frmCnpjCli.Value = ""
NoProc:
End Sub

Private Sub Label10_Click()

End Sub

Private Sub Label11_Click()

End Sub

Private Sub Label12_Click()

End Sub

Private Sub Label15_Click()

End Sub

Private Sub Label16_Click()

End Sub

Private Sub Label18_Click()

End Sub

Private Sub Label19_Click()

End Sub

Private Sub Label23_Click()

End Sub

Private Sub Label9_Click()

End Sub

Private Sub UserForm_Initialize()
    Sheets("TABELAS").Select
    'situacao'
    C1 = Range("A2").End(xlDown).Row
    ComboBox1.RowSource = "TABELAS!A2:A" & C1
    
    'ESTADOS'
    C2 = Range("B2").End(xlDown).Row
    ComboBox2.RowSource = "TABELAS!B2:B" & C2
    'grupos'
    C3 = Range("C2").End(xlDown).Row
    ComboBox3.RowSource = "TABELAS!C2:C" & C3
    Sheets("CADCLI").Select
    
End Sub

Re: Função CORRESP não funciona com critério "-1" (maior que

Enviado: 30 Mar 2017 às 20:27
por Estevaoba
Boa noite.
Não sei se entendi bem a sua necessidade.
Em todo caso, segue minha contribuição.

Re: Função CORRESP não funciona com critério "-1" (maior que

Enviado: 05 Abr 2017 às 08:50
por rogerpenna
Obrigado a todos, na verdade aparentemente a função original, com critério "1" atendia minha necessidade e achava o último número menor que X e não o primeiro....