Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 fonction PREVISION sur une matrice

  • Initiateur de la discussion Initiateur de la discussion F22Raptor
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

F22Raptor

XLDnaute Impliqué
Hello,
Je souhaite faire une interpolation linéaire, mais sur une matrice.
Quand c'est simplement sur une "ligne", j'utilise PREVISION.

Mais dans l'exemple joint, il faut chercher le résultat d'une matrice, qui se trouve environ au niveau de l'étoile dans le tableau.
On peut y arriver en faisant deux PREVISION successifs, un pour le vertical, et un pour l'horizontal. Mais pour mon tableau, c'est une galère (300 interpol à calculer … donc ferait 600 calculs … un peu lourd !)
Je cherche à savoir s'il existe l'equivalent de PREVISION, pour la matrice complète

Merci et bonne soirée à tous
 

Pièces jointes

Remarque :
Avec cette fonction personnalisée en VBA :
VB:
Option Explicit

Function Intpo2D#(ByVal X#, ByVal Y#, _
   ByVal X0#, ByVal Y0#, ByVal X1#, ByVal Y1#, _
   ByVal Vx0y0#, ByVal Vx1y0#, ByVal Vx0y1#, ByVal Vx1y1#)
X = (X - X0) / (X1 - X0)
Y = (Y - Y0) / (Y1 - Y0)
Intpo2D = Vx0y0 + X * (Vx1y0 - Vx0y0) + Y * (Vx0y1 - Vx0y0) + X * Y * (Vx0y0 - Vx1y0 - Vx0y1 + Vx1y1)
End Function
Cette formule renvoie le même résultat :
Code:
=Intpo2D(21;112;10;110;57;120;1,45;2,48;1,7;3)
 
Hello Dran,
Ton fichier avec PRODUITMAT donne bien la même réponse que si je fais mes deux interpols successives.
Mais je note la fonction VBA : je vais creuser ça demain ! 🙂
Merci et bonne soirée
 
De plus en plus fort avec recherche des cellules impliquées :
VB:
Option Explicit

Function MapTab(ByVal X#, ByVal Y#, ByVal Rng As Range) As Double
Dim L&, C&
L = WorksheetFunction.Match(Y, Rng.Columns(1))
C = WorksheetFunction.Match(X, Rng.Rows(1))
MapTab = Intpo2D(X, Y, Rng(1, C).Value, Rng(L, 1).Value, Rng(1, C + 1).Value, Rng(L + 1, 1).Value, _
   Rng(L, C).Value, Rng(L, C + 1).Value, Rng(L + 1, C).Value, Rng(L + 1, C + 1).Value)
End Function
Function Intpo2D#(ByVal X#, ByVal Y#, _
   ByVal X0#, ByVal Y0#, ByVal X1#, ByVal Y1#, _
   ByVal Vx0y0#, ByVal Vx1y0#, ByVal Vx0y1#, ByVal Vx1y1#)
X = (X - X0) / (X1 - X0)
Y = (Y - Y0) / (Y1 - Y0)
Intpo2D = Vx0y0 + X * (Vx1y0 - Vx0y0) + Y * (Vx0y1 - Vx0y0) + X * Y * (Vx0y0 - Vx1y0 - Vx0y1 + Vx1y1)
End Function
En la cellule voulue :
Code:
=MapTab(21;112;$A$10:$C$13)
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…