Fala Fernando,
Cara ia ser legal conseguir fazer isso, pelo que eu procurei não achei nada na internet.. como eu precisava urgentemente, fiz via VBA entrando no site e fazendo os calculos e me retornando o resultado..mas não é o ideal acho que é possível fazer no excel mesmo. Como a conta é meio maluca, entrei no site dei um inspecionar elemento e vi que eles usam algumas funções em javascript para os calculos...
Basicamente o DoCalculate() é a função que no change dos textbox fazem os calculos. Vou quebrar um pouco a cabeça aqui tbm, mas se você ou alguém conseguir extrair alguma coisa seria legal..
vlw
<!--
//Please cite as
//Shanti R Rao and Potluri M Rao, "Sample Size Calculator",
//Raosoft Inc., 2009, http://www.raosoft.com/samplesize.html
//You can derive these formulas from first principles. The
//ProbCriticalNormal function is adapted from an algorithm published
//in Numerical Recipes in Fortran.
function ProbCriticalNormal(P)
{
// input p is confidence level convert it to
// cumulative probability before computing critical
var Y, Pr, Real1, Real2, HOLD;
var I;
var PN = [0, // ARRAY[1..5] OF REAL
-0.322232431088 ,
-1.0 ,
-0.342242088547 ,
-0.0204231210245 ,
-0.453642210148E-4 ];
var QN = [0, // ARRAY[1..5] OF REAL
0.0993484626060 ,
0.588581570495 ,
0.531103462366 ,
0.103537752850 ,
0.38560700634E-2 ];
Pr = 0.5 - P/2; // one side significance
if ( Pr <=1.0E-8) HOLD = 6;
else {
if (Pr == 0.5) HOLD = 0;
else{
Y = Math.sqrt ( Math.log( 1.0 / (Pr * Pr) ) );
Real1 = PN[5]; Real2 = QN[5];
for ( I=4; I >= 1; I--)
{
Real1 = Real1 * Y + PN[I];
Real2 = Real2 * Y + QN[I];
}
HOLD = Y + Real1/Real2;
} // end of else pr = 0.5
} // end of else Pr <= 1.0E-8
return HOLD;
} // end of CriticalNormal
function SampleSize(margin, confidence, response, population)
{
pcn = ProbCriticalNormal(confidence / 100.0);
d1 = pcn * pcn * response * (100.0 - response);
d2 = (population - 1.0) * (margin * margin) + d1;
if (d2 > 0.0)
return Math.ceil(population * d1 / d2);
return 0.0;
}
function MarginOfError( sample, confidence, response, population)
{
var pcn = ProbCriticalNormal(confidence / 100.0);
d1 = pcn * pcn * response * (100.0 - response);
d2 = d1 * (population - sample) / (sample * (population - 1.0))
if (d2 > 0.0)
return Math.sqrt(d2);
return 0.0;
}
function DoCalculate()
{
var ss = SampleSize(Number(document.ss.margin.value),
Number(document.ss.confidence.value),
Number(document.ss.response.value),
Number(document.ss.population.value));
document.getElementById('sample').innerHTML=('<b>'+Math.ceil(ss).toString()+'</b');
ss = SampleSize(Number(document.ss.margin.value),
Number(document.ss.confidence1.value),
Number(document.ss.response.value),
Number(document.ss.population.value));
document.getElementById('sample4').innerHTML=('<b>'+Math.ceil(ss).toString()+'</b');
ss = SampleSize(Number(document.ss.margin.value),
Number(document.ss.confidence2.value),
Number(document.ss.response.value),
Number(document.ss.population.value));
document.getElementById('sample5').innerHTML=('<b>'+Math.ceil(ss).toString()+'</b');
ss = SampleSize(Number(document.ss.margin.value),
Number(document.ss.confidence3.value),
Number(document.ss.response.value),
Number(document.ss.population.value));
document.getElementById('sample6').innerHTML=('<b>'+Math.ceil(ss).toString()+'</b');
var m = MarginOfError(Number(document.ss.sample1.value),
Number(document.ss.confidence.value),
Number(document.ss.response.value),
Number(document.ss.population.value));
document.getElementById('margin1').innerHTML=('<b>'+m.toFixed(2).toString()+'%</b');
m = MarginOfError(Number(document.ss.sample2.value),
Number(document.ss.confidence.value),
Number(document.ss.response.value),
Number(document.ss.population.value));
document.getElementById('margin2').innerHTML=('<b>'+m.toFixed(2).toString()+'%</b');
m = MarginOfError(Number(document.ss.sample3.value),
Number(document.ss.confidence.value),
Number(document.ss.response.value),
Number(document.ss.population.value));
document.getElementById('margin3').innerHTML=('<b>'+m.toFixed(2).toString()+'%</b');
return true;
}
-->
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 30/01/2014 6:22 am