=CNUM(SI(ESTERR(CHERCHE("x²";A2));0;SI(CHERCHE("x²";A2)=1;1;SI(ESTNUM(GAUCHE(A2;CHERCHE("x²";A2)-1)+0);GAUCHE(A2;CHERCHE("x²";A2)-1);GAUCHE(A2;CHERCHE("x²";A2)-1)&1))))
=CNUM(SI(ESTERR(CHERCHE("x";SI(ESTERR(CHERCHE("x²";A2));A2;SI(NBCAR(A2)-CHERCHE("x²";A2)=1;0;DROITE(A2;NBCAR(A2)-CHERCHE("x²";A2)-1)))));0;SI(ESTNUM(GAUCHE(SI(ESTERR(CHERCHE("x²";A2));A2;SI(NBCAR(A2)-CHERCHE("x²";A2)=1;0;DROITE(A2;NBCAR(A2)-CHERCHE("x²";A2)-1)));CHERCHE("x";SI(ESTERR(CHERCHE("x²";A2));A2;SI(NBCAR(A2)-CHERCHE("x²";A2)=1;0;DROITE(A2;NBCAR(A2)-CHERCHE("x²";A2)-1))))-1)+0);GAUCHE(SI(ESTERR(CHERCHE("x²";A2));A2;SI(NBCAR(A2)-CHERCHE("x²";A2)=1;0;DROITE(A2;NBCAR(A2)-CHERCHE("x²";A2)-1)));CHERCHE("x";SI(ESTERR(CHERCHE("x²";A2));A2;SI(NBCAR(A2)-CHERCHE("x²";A2)=1;0;DROITE(A2;NBCAR(A2)-CHERCHE("x²";A2)-1))))-1);GAUCHE(SI(ESTERR(CHERCHE("x²";A2));A2;SI(NBCAR(A2)-CHERCHE("x²";A2)=1;0;DROITE(A2;NBCAR(A2)-CHERCHE("x²";A2)-1)));CHERCHE("x";SI(ESTERR(CHERCHE("x²";A2));A2;SI(NBCAR(A2)-CHERCHE("x²";A2)=1;0;DROITE(A2;NBCAR(A2)-CHERCHE("x²";A2)-1))))-1)&1)))
=CNUM(SI(ESTERR(CHERCHE("x";SI(ESTERR(CHERCHE("x²";A2));A2;SI(NBCAR(A2)-CHERCHE("x²";A2)=1;0;DROITE(A2;NBCAR(A2)-CHERCHE("x²";A2)-1)))));SI(ESTERR(CHERCHE("x²";A2));A2;SI(NBCAR(A2)-CHERCHE("x²";A2)=1;0;DROITE(A2;NBCAR(A2)-CHERCHE("x²";A2)-1)));SI(NBCAR(SI(ESTERR(CHERCHE("x²";A2));A2;SI(NBCAR(A2)-CHERCHE("x²";A2)=1;0;DROITE(A2;NBCAR(A2)-CHERCHE("x²";A2)-1))))-CHERCHE("x";SI(ESTERR(CHERCHE("x²";A2));A2;SI(NBCAR(A2)-CHERCHE("x²";A2)=1;0;DROITE(A2;NBCAR(A2)-CHERCHE("x²";A2)-1))));DROITE(SI(ESTERR(CHERCHE("x²";A2));A2;SI(NBCAR(A2)-CHERCHE("x²";A2)=1;0;DROITE(A2;NBCAR(A2)-CHERCHE("x²";A2)-1)));NBCAR(SI(ESTERR(CHERCHE("x²";A2));A2;SI(NBCAR(A2)-CHERCHE("x²";A2)=1;0;DROITE(A2;NBCAR(A2)-CHERCHE("x²";A2)-1))))-CHERCHE("x";SI(ESTERR(CHERCHE("x²";A2));A2;SI(NBCAR(A2)-CHERCHE("x²";A2)=1;0;DROITE(A2;NBCAR(A2)-CHERCHE("x²";A2)-1)))));0)))
Merci Papou, mais le problème c'est que chez moi ça met =EquA(A2) et ya pas la formule affichée. c'est normal ?
=equa(a1)
Dommage. P'têt' ben qu'on peut les raccourcir. Mais je ne sais pas comment. P'têt ben qu'on peut suivre Papou-net et envisager une fonction personnalisée en VBA. En voici une autre, appliquée dans le classeur joint :(...)
La formule de Roger est trop longue est trop compliqué, dommage.
Function Eq(x$)
Dim e, i%, c(2), p()
If x <> "" Then
p = Array("x²", "x")
For i = 0 To 1
If InStr(1, x, p(i)) Then
e = Split(x, p(i))
c(i) = e(0)
If c(i) = "" Or c(i) = "+" Then
c(i) = 1
ElseIf c(i) = "-" Then
c(i) = -1
End If
c(i) = c(i) + 0
x = e(1)
End If
Next
If x = "" Then c(2) = 0 Else c(2) = x
c(2) = c(2) + 0
Else
c(0) = "": c(1) = "": c(2) = ""
End If
Eq = c
End Function
=eq(B4)
=INDEX(eq(B4);1)
=INDEX(eq(B4);2)
=INDEX(eq(B4);3)
Function Eq(x$)
Dim e, i%, c(), p()
p = Array("x²", "x")
ReDim c(UBound(p) + 1)
If x <> "" Then
For i = 0 To UBound(p)
If InStr(1, x, p(i)) Then
e = Split(x, p(i))
c(i) = e(0)
If c(i) = "" Or c(i) = "+" Then
c(i) = 1
ElseIf c(i) = "-" Then
c(i) = -1
End If
c(i) = c(i) + 0
x = e(1)
End If
Next
If x = "" Then c(i) = 0 Else c(i) = x
c(i) = c(i) + 0
Else
For i = 0 To UBound(c): c(i) = "": Next
End If
Eq = c
End Function
ax^4+bx^3+cx^2+dx+e
p = Array("x²", "x")
p = Array("x^4", "x^3", "x^2", "x")