OVH Cloud OVH Cloud

Realiser la fonction TRI() d'excel

5 réponses
Avatar
baptiste
Bonjour,
Je voulais savoir si il existait déjà une funtion en php pour
réaliser la function TRI d'excel.
je ne trouve pas de doc sur cla fonction d'excel et encore moins sur
une similaire en php
merci d'avance

5 réponses

Avatar
dmetzler
<?php
$test = array(1 , 3, 2, 7,4,8,9);
sort($test);
print_r($test);
?>

Je voudrais pas être méchant, mais il n'est pas interdit de chercher
un minimum. Pour trier il faut une structure pour contenir tes donnée
: un tableau.

Dans la doc php, tu disposes alors des fonctions applicables aux
tableaux dont la fonction sort ! Maintenant, si tu recherche la
fonction TRI_COMME_EXCEL, forcément, tu ne vas pas trouver. Evite
aussi de chercher la fonction CORRECTION_ORTHOGRAPHE_COMME_DANS_WORD

Ensuite quand tu cherches de la doc sur un langage, ne cherche pas dans
la doc d'Excel sauf si c'est du VBA !

Enfin, la recherche sur google de "tri php" te donne en 2ème lien la
doc de array_multisort de php qui te conduite ensuite à la fonction
plus simple "sort"

Ma question : As tu *vraiment* cherché ?
Avatar
Baptiste - Pokara
Bonjour,
merci de votre réponse, mais je ne cherche pas à faire un tri mais a trouver
la formule mathématique de la function TRI() d'excel.
Pour information, cet fonction ne trie absolument des données mais afficher
le Taux de Rentabilité Interne.
Avatar
P'tit Marcel
Je voulais savoir si il existait déjà une funtion en php pour
réaliser la function TRI d'excel.
je ne trouve pas de doc sur cla fonction d'excel et encore moins sur
une similaire en php


Je ne crois pas qu'il existe une extension de php concernant les calculs
financiers, mais même sans chercher l'algorithme mathématique idoine, ça
peut se régler assez vite par itération.

Sans garantie, le programme pourrait ressembler à cela :

$cout_de_depart = 500000;
$remboursements = (1=> 3000, 2=> 4000, ...., 60=> 9500);

$tri = (double) 0.1; # valeur de départ
$tri_min = (double) 0;
$tri_max = (double) 10;

if(array_sum($remboursements) < $cout_de_depart) {
die('incohérence : remboursements inférieurs au montant initial');
}
do {
$solde = (double) - $cout_de_depart;
foreach($remboursements as $annee=>$remb) {
$solde += (double) $remb / pow(1 + $tri, $annee);
}
if($solde == 0) {
break;
}
elseif($solde < 0) {
$tri_max = (double) $tri;
$tri = (double) ($tri + $tri_min)/2;
}
else (
$tri_min = (double) $tri;
$tri = (double) ($tri + $tri_max)/2;
}
} while(abs($solde) >= 0.01))

echo "le TRI est $tri";


SGDG ; Il faudrait notamment vérifier que la condition $solde < 0 est
dans le bon sens...


eça
--
P'tit Marcel
stats sur les forums modérés http://www.centrale-lyon.org/ng/

Avatar
Marc Quinton
P'tit Marcel wrote:

Je ne crois pas qu'il existe une extension de php concernant les calculs
financiers, mais même sans chercher l'algorithme mathématique idoine, ça
peut se régler assez vite par itération.
eça



bravo a toi ! c'est réalisé aussi par itération dans la classe ci-dessous.

sinon en cherchant un peu sur le grand ternet, on trouve que :

* TRI = IRR, et VAN = NVP (en english)
* en effet il vaut mieux faire ses recherches en anglais sur Internet,
* en cherchant php financial, j'ai pas trouvé grand choses,
* mais sur phpclasses j'ai trouvé ton bonheur (baptiste)

Name: Financial
Base name: financial_class
Description: Financial functions with the Excel function names.

http://www.phpclasses.org/browse/file/3028.html


* lien intéressant :
http://fr.biz.yahoo.com/educ_fiche19.html
(j'en passe)

Avatar
dmetzler
Je te demande alors de m'excuser pour ma réponse un peu.... abrupte.
Ca aurait peut être été mieux de préciser que ça voulait dire Taux
de Rentabilité Interne