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)
 
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

Discussions similaires

Retour