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?
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.
Interpolazione 2D in una tabella Excel
Moderatori: MassimoB,
Paolino,
fairyvilje
2 messaggi
• Pagina 1 di 1
1
voti
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 -
lectroYou

2 messaggi
• Pagina 1 di 1
Chi c’è in linea
Visitano il forum: Nessuno e 43 ospiti