 # Cálculo frequência ocorrências c/Countifs(contar.se.s)

## Recommended Posts Boas!

Gostava de saber se alguém me podia ajudar na resolução de um problema que me surgiu.

A situação é a seguinte: Pretendo fazer a contagem entre pontos, para obter uma frequência de ocorrência para elaborar um histograma e de distribuição normal.

O problema encontra-se na leitura dos valores entre os intervalos, sendo que estou aa utilizar a função Countifs (Contar.se.s em excell) só que me esta a retornar

valor 0.

O código que estou a utilizar é o seguinte:

Sub DistNormal()

Set Intervalo = Sheets("Folha1").Range("Teste") 'Range entre A2:A19 exemplo

'Cálculo dos Parametros

Barras = 4 ' Valor exemplo

Media = WorksheetFunction.Average(Intervalo)

Desvio = WorksheetFunction.StDev(Intervalo)

Maximo = WorksheetFunction.Max(Intervalo)

Minimo = WorksheetFunction.Min(Intervalo)

Rangee = (Maximo - Minimo)

TamanhoClasse = WorksheetFunction.Round(Rangee / Barras, 1)

Classes = WorksheetFunction.Round(Rangee / TamanhoClasse, 0)

LSL = Minimo - 2

USL = Maximo + 2

Range("C1").Value = "Média"

Range("D1").Value = Media

Range("D2").Value = Desvio

Range("C3").Value = "Máximo"

Range("D3").Value = Maximo

Range("C4").Value = "Mínimo"

Range("D4").Value = Minimo

Range("C5").Value = "Nº Barras"

Range("D5").Value = Barras

Range("C6").Value = "Nº Classes"

Range("D6").Value = Classes

Range("C7").Value = "Comprimento Classes"

Range("D7").Value = TamanhoClasse

PontoInicial = -1

' Valor inicial do Range

valor = -TamanhoClasse

'Cálculo da classes

For linha = 2 To contador

Sheets("Folha1").Cells(linha, 6) = valor

valor = valor + TamanhoClasse

Next linha

'Cálculo das frequências

For linha = 3 To contador ' Pois o inicial é diferente

valor1 = Sheets("Folha1").Cells(linha, 6)

valor2 = Sheets("Folha1").Cells(linha, 6)

conta1 = Application.CountIfs(Intervalo, ">" & valor1, Intervalo, "<" & valor2)

'conta2 = Application.CountIf(Intervalo, ">" & Valor2)

'Sheets("Folha1").Cells(linha, 7) = (conta1 - conta2)

Sheets("Folha1").Cells(linha, 10) = conta1

Next linha

End sub

Cunprimentos,

Mont3ro

##### Share on other sites Por acaso não estás a utilizar valores com vírgulas?

O visualbasic não suporta vírgulas logo tens de trocar os valores com vírgulas para valores com pontos

Muda as configurações do excel que já não te tens de preocupar com a inserção de dados errada. ## Create an account

Register a new account

×

• #### Revista PROGRAMAR

• Wiki
• IRC
×
• Create New...