Excel - Ricerca di un valore intermedio

Asked By paoloard on 13-May-12 04:37 AM
E' un problema che ho risolto usando la geometria e le equivalenze. Per? mi
piacerebbe sapere come lo risolvereste voi.
Ho due serie di dati positivi crescenti, non importa se interi o decimali:
Dati1        Dati2
0                0,1
0,35           0,146
0,7             0,21
3,5             0,34
17,5          0,93
50            1,66
100          2,434

Dato un valore di Dati2, per es. 0,45, vorrei trovare il corrispondente
valore in Dati1.
Il problema ? di immediata comprensione se si riporta l'andamento dei dati
in un grafico con Dati1 in ascissa e Dati2 in ordinata. Infatti sul segmento
che unisce i punti che comprendono il valore dato deve cadere il
corrispondente valore da trovare.
Sarebbe interessante trovare una soluzione anche nel caso in cui i dati non
siano crescenti ma altalenanti.
Cosa ne pensate?
Ciao

--
paoloard
http://www.riolab.org


paoloard replied to paoloard on 13-May-12 04:40 AM
E' un problema che ho risolto usando la geometria e le equivalenze. Per? mi
piacerebbe sapere come lo risolvereste voi.
Ho due serie di dati positivi crescenti, non importa se interi o decimali:
Dati1        Dati2
0                0,1
0,35           0,146
0,7             0,21
3,5             0,34
17,5          0,93
50            1,66
100          2,434

Dato un valore di Dati2, per es. 0,45, vorrei trovare il corrispondente
valore in Dati1.
Il problema ? di immediata comprensione se si riporta l'andamento dei dati
in un grafico con Dati1 in ascissa e Dati2 in ordinata. Infatti sul segmento
che unisce i punti che comprendono il valore dato deve cadere il
corrispondente valore da trovare.
Sarebbe interessante trovare una soluzione anche nel caso in cui i dati non
siano crescenti ma altalenanti.
Cosa ne pensate?
Ciao

--
paoloard
http://www.riolab.org

dimenticavo, come si pu? notare l'incremento di ogni serie non ha un'unica
ragione, ovvero non ? costante.

--
paoloard
http://www.riolab.org
Bruno Campanini replied to paoloard on 13-May-12 08:50 AM
on 13-05-12, paoloard supposed :

- ordino ASC i Dati2 e corrispondentemente i Dati1
- se 0.45 esiste in Dati2 allora esister? anche
la corrispondenza in Dati1, e il problema ? gi? risolto
- se 0.45 non esiste in Dati2 sar?, per intepolazione lineare,

0.45             x
-----------  =  ----------
0.93 - 0.34     17.5 - 3.5

x = 630/59 = 10.678

Salvo verificare che la successione di Dati2 non ? lineare ma,
supponiamo, esponenziale e quindi applicare di conseguenza
un'interpolazione esponenziale.
Ma il concetto non cambia.

Bruno
paoloard replied to Bruno Campanini on 13-May-12 11:42 AM
on 13-05-12, paoloard supposed :

- ordino ASC i Dati2 e corrispondentemente i Dati1
- se 0.45 esiste in Dati2 allora esister? anche
la corrispondenza in Dati1, e il problema ? gi? risolto
- se 0.45 non esiste in Dati2 sar?, per intepolazione lineare,

0.45             x
-----------  =  ----------
0.93 - 0.34     17.5 - 3.5

x = 630/59 = 10.678

Salvo verificare che la successione di Dati2 non ? lineare ma,
supponiamo, esponenziale e quindi applicare di conseguenza
un'interpolazione esponenziale.
Ma il concetto non cambia.

Bruno
*************************************

Ciao Bruno, innanzitutto grazie per la risposta.
La successione dei dati non ? riconducibile ad una progressione di alcun
tipo in quanto ? casuale.
Non mi pare che la tua soluzione sia corretta.
Infatti se nella tua formula metti come dato intermedio un valore presente
nella serie Dati2, per es. 0,34, non ti viene restituito il corrispondente
valore in Dati1 3,50, ma 8,0678.
Per confronto usa questi dati (sono gli stessi di prima ma con solo due
decimali. I dati precedenti mostravano due decimali ma alcuni ne avevano
tre):
Dati1   Dati2
0,00    0,10
0,35    0,15
0,70    0,21
3,50    0,34
17,50    0,93
50,00    1,66
100,00    2,43
La tua formula:
0,45*(17,5 - 3,50)
x = ----------------------------- = 10,678
0,93 - 0,34

dovrebbe essere modificata in:
(0,45 - 0,34)*(17,5 - 3,5)
x = ---------------------------------------- + 3,50 = 6,11
0,93 - 0,34

che invece restituisce risultati corretti (verifica sui dati coincidenti).
Inoltre io volevo porre il problema anche in questo modo:
avendo la serie di dati suesposta, trovare una formula in Excel che, dato un
qualsiasi valore in Dati2, restituisca il corrispondente valore in Dati1.
Per trovare i valori che comprendono il dato di partenza io ho usato la
funzione CONFRONTA nidificata in INDICE.
Per concludere, nel presupposto che i dati con le intestazioni partano da A1
(i dati da A2 e B2) e che il valore di input sia in C2 io avrei scritto
questa formula:
=(C2-INDICE(B2:B8;CONFRONTA(C2;B2:B8;1)))*(INDICE(A2:A8;CONFRONTA(C2;B2:B8;1)+1)-INDICE(A2:A8;CONFRONTA(C2;B2:B8;1)))/(INDICE(B2:B8;CONFRONTA(C2;B2:B8;1)+1)-INDICE(B2:B8;CONFRONTA(C2;B2:B8;1)))+INDICE(A2:A8;CONFRONTA(C2;B2:B8;1))
che per? ritengo sia migliorabile.

--
paoloard
http://www.riolab.org
Scossa replied to paoloard on 13-May-12 12:05 PM
Ciao Paolo,
avevo postato ieri da google.groups, ma vedo che via NewsReader il mio post
non appare quindi lo reinvio via eternal-september:


Io di geometria ricordo ormai poco, ma quello che dici mi pare sia
valido solo ipotizzando lineare l'andamento tra quei due punti.


Non ho capito se cerchi una soluzione con formule, VBA o ....

Bye!
scossa
Scossa replied to paoloard on 13-May-12 12:08 PM
Ciao Paolo,

avevo postato stamattina via google.groups ma vedo che via newsserver=20
(eternal-september) non appare, per cui reinvio da l=EC:

Io di geometria ricordo ormai poco, ma quello che dici mi pare sia
valido solo ipotizzando lineare l'andamento tra quei due punti.

on

Non ho capito se cerchi una soluzione con formule, VBA o ....

Bye!
scossa
paoloard replied to Scossa on 13-May-12 12:29 PM
Ciao Paolo,

avevo postato stamattina via google.groups ma vedo che via newsserver
(eternal-september) non appare, per cui reinvio da l?:

Io di geometria ricordo ormai poco, ma quello che dici mi pare sia
valido solo ipotizzando lineare l'andamento tra quei due punti.


Non ho capito se cerchi una soluzione con formule, VBA o ....

Bye!
scossa

*******************

Ciao,
formule, puoi vedere la mia risposta a Bruno?
Grazie

--
paoloard
http://www.riolab.org
Scossa replied to paoloard on 13-May-12 12:38 PM
In article <joongu$msd$1@dont-email.me>, xxpard@alice.it says...

La risposta l'ho letta ma, ribadisco:
quello che dici (dal punto di vista geometrico) mi pare sia valido solo=20
ipotizzando lineare l'andamento tra quei due punti.

Se l'andamento non =E8 lineare o esponenziale come fai a dire che il valore=
=20
trovato con la tua formula sia corretto visto che tu stesso dici che "la=20
successione dei non =E8 riconducibile ad una progressione di alcun tipo in=
=20
quanto =E8 casuale" e per quel valore di Dati2 il corrispondente in Dati1 n=
on=20
sia "bizzarro"?
paoloard replied to Scossa on 13-May-12 12:56 PM
In article <joongu$msd$1@dont-email.me>, xxpard@alice.it says...

La risposta l'ho letta ma, ribadisco:
quello che dici (dal punto di vista geometrico) mi pare sia valido solo
ipotizzando lineare l'andamento tra quei due punti.

Se l'andamento non ? lineare o esponenziale come fai a dire che il valore
trovato con la tua formula sia corretto visto che tu stesso dici che "la
successione dei non ? riconducibile ad una progressione di alcun tipo in
quanto ? casuale" e per quel valore di Dati2 il corrispondente in Dati1 non
sia "bizzarro"?
************************************

infatti, l'andamento fra due punti ? lineare

--
paoloard
http://www.riolab.org
Bruno Campanini replied to paoloard on 13-May-12 05:47 PM
paoloard expressed precisely :


Avevo male inteso...

Prova cos?:

y = a6*x^6 + a5*x^5 + a4*x^4 + a3*x^3 + a2*x^2 + a1*x + a0

dove:
a6 = -209.265
a5 = 1163.4
a4 =-2221.5
a3 = 1752.1
a2 = -545.345
a1 =   77.0426
a0 =   -3.79219

che per x = la serie dei Dati2
restituisce:
0
0.349976
0.699934
3.49975
17.4955
49.9833
100.18

e per x = 0.45 ---> y = 8.73486

Bruno
Scossa replied to paoloard on 13-May-12 06:12 AM
Ciao Paolo,


Io di geometria ricordo ormai poco, ma quello che dici mi pare sia
valido solo ipotizzando lineare l'andamento tra quei due punti.



Non ho capito se cerchi una soluzione con formule, VBA o ....

Bye!
scossa
Andrea.9 replied to paoloard on 14-May-12 04:28 AM
.... e usare la funzione TENDENZA?
ciao
andrea
Andrea.9 replied to Andrea.9 on 14-May-12 07:33 PM
avrei pensato a questa:
i tuoi dati x in A2:A8 e y in B2:B8
la x del nuovo punto in C2
la y del nuovo punto con questa:
=3DTENDENZA(INDICE(B2:B8;CONFRONTA(C2;A2:A8;1)):INDICE(B2:B8;CONFRONTA(C2;A=
2:A8;1)+1);INDICE(A2:A8;CONFRONTA(C2;A2:A8;1)):INDICE(A2:A8;CONFRONTA(C2;A2=
ho provato con diversi punti e i grafici mi si sovrappongono per cui
penso sia giusto
l'unica accortezza =E8 che la x da ricercare deve essere > del valore
minimo e < del valore massimo
ciao
andrea
paoloard replied to Andrea.9 on 15-May-12 04:33 AM
avrei pensato a questa:
i tuoi dati x in A2:A8 e y in B2:B8
la x del nuovo punto in C2
la y del nuovo punto con questa:
=TENDENZA(INDICE(B2:B8;CONFRONTA(C2;A2:A8;1)):INDICE(B2:B8;CONFRONTA(C2;A2:A8;1)+1);INDICE(A2:A8;CONFRONTA(C2;A2:A8;1)):INDICE(A2:A8;CONFRONTA(C2;A2:A8;1)+1);C2)
ho provato con diversi punti e i grafici mi si sovrappongono per cui
penso sia giusto
l'unica accortezza ? che la x da ricercare deve essere > del valore
minimo e < del valore massimo
ciao
andrea
***************************

Ciao Andrea, hai provato ad applicarla ai miei dati? Io non trovo gli stessi
risultati.
Grazie

--
paoloard
http://www.riolab.org
Andrea.9 replied to paoloard on 15-May-12 06:28 AM
ho fatto un file di esempio con i tuoi dati di origine ed una serie di
altri valori a caso.
vedi qui:
https://docs.google.com/open?id=0B1kt3cvRBcZwaUFPR1Qtbmw3N0U
da questi ho fatto un grafico da cui si vede che i nuovi valori
calcolati sono proprio sovrapposti ai segmenti che collegano i valori
di origine.
per cui per me sono giusti questi
oppure non ho ben capito il problema
ciao
andrea
Andrea.9 replied to Andrea.9 on 18-May-12 12:39 PM
tessi

paolo non hai pi=F9 fatto sapere niente
hai risolto ???
ciao
andrea