この関数 ( https://stackoverflow.com/a/46227341/10495991から) を使用して、配列の 25 パーセンタイルを計算しています。
function getPercentile($array, $percentile)
{
$percentile = min(100, max(0, $percentile));
$array = array_values($array);
sort($array);
$index = ($percentile / 100) * (count($array) - 1);
$fractionPart = $index - floor($index);
$intPart = floor($index);
$percentile = $array[$intPart];
$percentile += ($fractionPart > 0) ? $fractionPart * ($array[$intPart + 1] - $array[$intPart]) : 0;
return $percentile;
}
この配列に関数を適用しています
Array ( [0] => 9814106112 [1] => 0 [2] => 5692473344 [3] => 360448 [4] => 8514641920 [5] => 5228150784 [6] => 11731894272 [7] => 7707688960 [8] => 11325239296 [9] => 360448 [10] => 13382311936 [11] => 11934347264 [12] => 7919140864 [13] => 7370223616 [14] => 46461620224 [15] => 360448 )
Excel では、25 パーセンタイルは 3921203200 である必要がありますが、関数は Excel よりもはるかに高い 13020320768 を返します。
結果が間違っている理由はまったくわかりません。どんな助けでも大歓迎です。