Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Interpolazione 2D in una tabella Excel

Linguaggi e sistemi

Moderatori: Foto UtenteMassimoB, Foto UtentePaolino, Foto Utentefairyvilje

1
voti

[1] Interpolazione 2D in una tabella Excel

Messaggioda Foto Utenterini » 17 set 2016, 11:49

Salve,

ho un problema che non so risolvere in Excel. Data una tabella, ad esempio quella nell'immagine seguente, c'è un modo in Excel per calcolare un punto interpolante in una tabella 2D?
Esempio.PNG
Esempio
Esempio.PNG (9.39 KiB) Osservato 9026 volte

Non mi vengono in mente modi semplici per calcolarlo, quindi chiedo a voi.

Ad esempio, se in quella tabella entro con due valori a=5, b=13 vorrei scrivere una funzione intelligente (più compatta possibile) per trovare il risultato.
Si, posso ricorrere a vba, ma vorrei inserire semplicemente una formula. Quindi vi chiedo se c'è un modo più intelligente di farlo.

Su come calcolare il risultato viene spiegato egregiamente in questa pagina web: http://it.wikihow.com/Applicare-un'Inte ... are-Doppia


Regole:
- Non si usa vba
- il risultato deve stare in una sola cella.
Allegati
Esempio.zip
Formato Excel 2010
(6.29 KiB) Scaricato 508 volte
rini - \existslectroYou
Avatar utente
Foto Utenterini
1.405 2 5 13
Master EY
Master EY
 
Messaggi: 460
Iscritto il: 17 dic 2007, 1:04
Località: Bologna \ Salento

1
voti

[2] Re: Interpolazione 2D in una tabella Excel

Messaggioda Foto Utenterini » 17 set 2016, 12:45

Comunque la mia soluzione poco elegante ma funzionante è questa :?

Codice: Seleziona tutto
=((SE(CERCA.ORIZZ(D12;D3:H3;1;VERO)=MAX(D3:H3);MAX(D3:H3);INDICE(D3:H3;CONFRONTA(CERCA.ORIZZ(D12;D3:H3;1;VERO);D3:H3)+1))-D12)/(SE(CERCA.ORIZZ(D12;D3:H3;1;VERO)=MAX(D3:H3);MAX(D3:H3);INDICE(D3:H3;CONFRONTA(CERCA.ORIZZ(D12;D3:H3;1;VERO);D3:H3)+1))-CERCA.ORIZZ(D12;D3:H3;1;VERO))*INDICE(D4:H9;CONFRONTA(CERCA.VERT(C12;C4:C9;1;VERO);C4:C9);CONFRONTA(CERCA.ORIZZ(D12;D3:H3;1;VERO);D3:H3))+(D12-CERCA.ORIZZ(D12;D3:H3;1;VERO))/(SE(CERCA.ORIZZ(D12;D3:H3;1;VERO)=MAX(D3:H3);MAX(D3:H3);INDICE(D3:H3;CONFRONTA(CERCA.ORIZZ(D12;D3:H3;1;VERO);D3:H3)+1))-CERCA.ORIZZ(D12;D3:H3;1;VERO))*INDICE(D4:H9;CONFRONTA(CERCA.VERT(C12;C4:C9;1;VERO);C4:C9);CONFRONTA(SE(CERCA.ORIZZ(D12;D3:H3;1;VERO)=MAX(D3:H3);MAX(D3:H3);INDICE(D3:H3;CONFRONTA(CERCA.ORIZZ(D12;D3:H3;1;VERO);D3:H3)+1));D3:H3)))*(SE(CERCA.VERT(C12;C4:C9;1;VERO)=MAX(C4:C9);MAX(C4:C9);INDICE(C4:C9;CONFRONTA(CERCA.VERT(C12;C4:C9;1;VERO);C4:C9)+1))-C12)/(SE(CERCA.VERT(C12;C4:C9;1;VERO)=MAX(C4:C9);MAX(C4:C9);INDICE(C4:C9;CONFRONTA(CERCA.VERT(C12;C4:C9;1;VERO);C4:C9)+1))-CERCA.VERT(C12;C4:C9;1;VERO))+((SE(CERCA.ORIZZ(D12;D3:H3;1;VERO)=MAX(D3:H3);MAX(D3:H3);INDICE(D3:H3;CONFRONTA(CERCA.ORIZZ(D12;D3:H3;1;VERO);D3:H3)+1))-D12)/(SE(CERCA.ORIZZ(D12;D3:H3;1;VERO)=MAX(D3:H3);MAX(D3:H3);INDICE(D3:H3;CONFRONTA(CERCA.ORIZZ(D12;D3:H3;1;VERO);D3:H3)+1))-CERCA.ORIZZ(D12;D3:H3;1;VERO))*INDICE(D4:H9;CONFRONTA(SE(CERCA.VERT(C12;C4:C9;1;VERO)=MAX(C4:C9);MAX(C4:C9);INDICE(C4:C9;CONFRONTA(CERCA.VERT(C12;C4:C9;1;VERO);C4:C9)+1));C4:C9);CONFRONTA(CERCA.ORIZZ(D12;D3:H3;1;VERO);D3:H3))+(D12-CERCA.ORIZZ(D12;D3:H3;1;VERO))/(SE(CERCA.ORIZZ(D12;D3:H3;1;VERO)=MAX(D3:H3);MAX(D3:H3);INDICE(D3:H3;CONFRONTA(CERCA.ORIZZ(D12;D3:H3;1;VERO);D3:H3)+1))-CERCA.ORIZZ(D12;D3:H3;1;VERO))*INDICE(D4:H9;CONFRONTA(SE(CERCA.VERT(C12;C4:C9;1;VERO)=MAX(C4:C9);MAX(C4:C9);INDICE(C4:C9;CONFRONTA(CERCA.VERT(C12;C4:C9;1;VERO);C4:C9)+1));C4:C9);CONFRONTA(SE(CERCA.ORIZZ(D12;D3:H3;1;VERO)=MAX(D3:H3);MAX(D3:H3);INDICE(D3:H3;CONFRONTA(CERCA.ORIZZ(D12;D3:H3;1;VERO);D3:H3)+1));D3:H3)))*(C12-CERCA.VERT(C12;C4:C9;1;VERO))/(SE(CERCA.VERT(C12;C4:C9;1;VERO)=MAX(C4:C9);MAX(C4:C9);INDICE(C4:C9;CONFRONTA(CERCA.VERT(C12;C4:C9;1;VERO);C4:C9)+1))-CERCA.VERT(C12;C4:C9;1;VERO))
rini - \existslectroYou
Avatar utente
Foto Utenterini
1.405 2 5 13
Master EY
Master EY
 
Messaggi: 460
Iscritto il: 17 dic 2007, 1:04
Località: Bologna \ Salento


Torna a PC e informatica

Chi c’è in linea

Visitano il forum: Nessuno e 43 ospiti