English

MS Excel VBA - Bilineaire interpolatie functie

Bilineaire interpolatie (interpolatie binnen een tweedimensionale tabel) kan met reguliere MS Excel functies. Maar dit levert lange formules op die lastig leesbaar en kopieerbaar zijn. Je kunt ook een gebruikersgedefinieerde functie interpolateXY implementeren. De VBA code van die functie staat onderaan deze pagina.

     Download demobestand  (17kB - downloaded 1531 keer)



Uitleg bij de berekening van bovenstaand voorbeeld


Visualisatie van bovenstaande datatabel
Berekening
X = 451 ligt tussen X = 400 en X = 500. X-fractie = (451 - 400)/(500 - 400) = 0.51
Y = 75 ligt tussen Y = 60 en Y = 80. Y-fractie = (75 - 60)/(80 - 60) = 0.75

De waarden van de 4 datapunten waartussen geïnterpoleerd moet worden (X,Y):
     1. (400,60) = 149
     2. (500,60) = 163
     3. (400,80) = 169
     4. (500,80) = 187

Interpolatie X:
     1.&2. → 149 + 0.51 × (163 - 149) = 156.14
     3.&4. → 169 + 0.51 × (187 - 169) = 178.18

Interpolatie Y:
     156.14 + 0.75 × (178.18 - 156.14) = 172.67 hetgeen de einduitkomst is.

VBA code ter plaatsing in een module


In MS Excel, druk Alt+F11 om de Visual Basic Editor te openen (Windows). Via hoofdmenu: Invoegen → Module. Kopieer onderstaande code naar de module.