Notifications
Clear all

Function com IRERROR

8 Posts
3 Usuários
0 Reactions
1,709 Visualizações
(@renatoddd)
Posts: 70
Trusted Member
Topic starter
 

Amigos, bom dia.

Tenho a sentença abaixo, que me retorna o valor médio seguindo uns critérios e tal.
O caso é que quando não há dados para fazer a média, ele da erro. Preciso tratar o erro de forma que nestes casos, retorne vazio "".

Não estou conseguindo aplicar a worksheetfunction iferror. Alguém sabe como devo fazer ?

A sentença é esta

Range("L63").Value = WorksheetFunction.AverageIfs(Plan2.Range("AG:AG"), Plan2.Range("N:N"), "Em andamento", Plan2.Range("J:J"), Range("C63"))

Obrigado.

 
Postado : 18/12/2017 8:32 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia Renato,

Tenta assim:

    With Application.WorksheetFunction
        Range("L63").Value = .IfError(.AverageIfs(Plan2.Range("AG:AG"), Plan2.Range("N:N"), "Em andamento", Plan2.Range("J:J"), Range("C63")), "")
    End With

Qualquer coisa da o grito.
Abraço

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 18/12/2017 8:44 am
(@klarc28)
Posts: 971
Prominent Member
 
Range("L63").Value = WorksheetFunction.IFERROR(WorksheetFunction.AverageIfs(Plan2.Range("AG:AG"), Plan2.Range("N:N"), "Em andamento", Plan2.Range("J:J"), Range("C63")), "")
 
Postado : 18/12/2017 8:44 am
(@klarc28)
Posts: 971
Prominent Member
 

Se o código resolveu o problema, favor marcar o tópico como resolvido.

 
Postado : 18/12/2017 8:51 am
(@renatoddd)
Posts: 70
Trusted Member
Topic starter
 

Bom dia Renato,

Tenta assim:

    With Application.WorksheetFunction
        Range("L63").Value = .IfError(.AverageIfs(Plan2.Range("AG:AG"), Plan2.Range("N:N"), "Em andamento", Plan2.Range("J:J"), Range("C63")), "")
    End With

Qualquer coisa da o grito.
Abraço

Opa, valeu meu caro.

Infelizmente deu um erro.

"A mensagem da janela do depurador é:

Erro em tempo de execução '1004'

Não é possível obter a propriedade Averageifs da classe
WorksheetFunction"

Sabe o que pode ser ?

Obrigado.

 
Postado : 18/12/2017 8:58 am
(@klarc28)
Posts: 971
Prominent Member
 
 v = WorksheetFunction.AverageIfs(columnA, columnA, "<3", columnB, "2")
    If Err.Number = 1004 Then
        'No matching data
        v = CVErr(xlErrNA)
    End If

https://stackoverflow.com/questions/15266283/creating-averageifs-in-excel

 
Postado : 18/12/2017 9:13 am
(@klarc28)
Posts: 971
Prominent Member
 

O problema, neste caso, indica que a função não pode retornar o valor desejado. Por exemplo, se usamos a função MATCH, o erro indica que a função não conseguiu corresponder o valor procurado na matriz que teoricamente contém o dado buscado.

 
Postado : 18/12/2017 9:25 am
(@klarc28)
Posts: 971
Prominent Member
 

Veja se você inserir a fórmula na célula do Excel dá erro. Se der erro, poste sua dúvida no fórum de fórmulas e funções aqui do planilhando mesmo. Se não der erro, retorne aqui com a fórmula do Excel.

 
Postado : 18/12/2017 9:27 am