Conversion formule libre office -> Excel
Bonjour à tous,
Je suis devant une impasse...
J'avais commencé à travailler dans un classeur sur Libre Office car je n'avais pas encore excel sur mon PC pro.
C'est désormais chose faite ! Mais je rencontre un problème avec de compatibilité avec certaines formules SI sur Libre Office..
Exemple :
Formules qui fonctionnent sur LO :
=SI.CONDITIONS($D$1="@";D102+100;$D$1="A";D102+100;$D$1="B";D102+100;$D$1="C";D102+160;$D$1="D";D102+160)+D101
=SI.CONDITIONS(ET(OU($D$1="@";$D$1="A");$D$2="OUI");1;ET(OU($D$1="B";$D$1="C";$D$1="D");$D$2="OUI");2;$D$2="NON";0;1;0)
=SIERREUR(SI.CONDITIONS(C246="COMMANDE OK -> QTE 0 AUTOMATIQUE";0;C246="COMMANDE KO -> AJOUTER QTE EN COLONNE D";D246);"A VALIDER")
Les mêmes formules qui ne fonctionnent pas sur EXL :
=_xlfn.IFS($D$1="@";D102+100;$D$1="A";D102+100;$D$1="B";D102+100;$D$1="C";D102+160;$D$1="D";D102+160)+D101
=SI.CONDITIONS(ET(OU($D$1="@";$D$1="A");$D$2="OUI");1;ET(OU($D$1="B";$D$1="C";$D$1="D");$D$2="OUI");2;$D$2="NON";0;1;0)
=SIERREUR(SI.CONDITIONS(C246="COMMANDE OK -> QTE 0 AUTOMATIQUE";0;C246="COMMANDE KO -> AJOUTER QTE EN COLONNE D";D246);"A VALIDER")
A mon avis... La formule SI.CONDITION ne marchent pas avec ma version d'excel (2007). Comment puis-je faire pour modifier ces forumules afin qu'elle fonctionnent de la même manière ?
Merci d'avance pour votre aide !
Gaëtan
Bonjour,
Effectivement, SI.CONDITIONS n'existe pas dans cette version d'Excel. Je pense que le plus simple est de concevoir différemment la formule, en passant pas un tableau de correspondance entre valeur recherchée et montant additionnel couplé à une fonction RECHERCHEV.
Exemple pour ce tableau en TableauCorrespondance!$A$1:$B$5 :
| @ | 100 |
| A | 100 |
| B | 100 |
| C | 160 |
| D | 160 |
=SI.CONDITIONS($D$1="@";D102+100;$D$1="A";D102+100;$D$1="B";D102+100;$D$1="C";D102+160;$D$1="D";D102+160)+D101Devient :
=SOMME(SIERREUR(RECHERCHEV($D$1;TableauCorrespondance!$A$1:$B$5;2;0);0);D101:D102)Bonjour Gaet80, Salut Pedro !
En effet, vous ne disposez pas de cette fonction sur votre version...
Une possibilité classique, pour votre première formule, consiste à utiliser un recherchev qui assigne à chaque caractère "@", etc une valeur additionnelle : 100 ou 160.
Ca donne ceci :
=RECHERCHEV($D$1;MaTabledeCorresp;2;0)+D102+D101où matabledecorresp est à remplacer par la référence du tableau à 2 colonnes avec les lettres en première colonne et les valeurs associées en deuxième (ex : $Y$1:$Z$5).
Il doit être possible d'utiliser une fonction personnalisée également :
function SI_CONDITIONS(paramarray vParam())
for i = lbound(vParam) to ubound(vParam) step 2
if vParam(i) then SI_CONDITIONS = vParam(i + 1): exit function
next i
SI_CONDITIONS = CVErr(2042)
end functionA utiliser ainsi :
=SI_CONDITIONS(exprBool1;Val1;exprBool2;Val2;....)et devrait renvoyer #VALEUR en cas d'utilisation incorrecte et #NA en cas de défaut de correspondance.
Cdlt,
Bonjour à vous deux,
Merci pour vos retours !
Je m'en doutais....
Dans l'intervalle, j'ai essayé différentes choses par moi même et j'ai réussi à me dépatouiller avec une formule SI. Tout simplement. J'ai moins d'arguments au final donc elle est plus facile à saisir. Je l'ai testé et cela marche.
Il me reste la formule la plus "complexe" avec les SI / OU /ET à modifier mais comme j'ai changé des paramètres il faut que je la repense !
Je reviendrai ici poster si je suis encore bloqué !
Merci pour le coup de main :)
Gaëtan