› Excel e gli applicativi Microsoft Office › Riscalare un range di valori
-
AutoreArticoli
-
Ho un range di valori che vanno da 0.33 (valore minimo) a 16 (valore massimo)
Dovrei ritrasformarli su una scala nuova di valori da 0 a 10, solo invertendo l'ordine, nel senso che il valore massimo 16 della scala originale corrisponde allo 0 della nuova, mentre lo 0,33 dell'originale corrisponde al 10 della nuova.
Supponendo che nella colonna A ho tutti i valori originali, per quelli riclassificati che vorrei calcolare in B, che formula dovrei usare da B1 in giù?
Allego il file esempio su cui lavorare
Allegati:
You must be logged in to view attached files.ciao
in realtà non stai ponendo un quesito informatico ma banalmente matematico
anzi.. in realtà ne stai ponendo due
il primo è quello di capovolgere un ordinamento in modo che il valore massimo assuma il minimo e viceversa - mantenendo la proporzionalità tra i valori ... per farlo è sufficiente ricalcolare la serie come
y = max(x) + min(x) - x
il secondo è relativo a riproporzionare la serie risultante dal primo processo in modo che all'intervallo min/max si sostituisca l'intervallo 0/10 ... per farlo è necessario ricalcolare ciasucn valore come
z = ( y - min(y) ) / ( max(y) - min(y) ) *10
nel nostro caso ovviamente max(y) e min(y) corrispondono esattamente a max(x) e min(x), quindi:
z = ([( max(x) + min(x) - x ] - min(x) ) / ( max(x) - min(x) ) *10
e semplificando
z = ( max(x) - x ) / ( max(x) - min(x) ) *10
quindi mettendo in colonna B la formula corrispondente...
=(MAX($A$2:$A$999)-A2)/(MAX($A$2:$A$999)-MIN($A$2:$A$999))*10
.. hai il risultato richiesto
Allegati:
You must be logged in to view attached files.Grazie mille.
Cosa succede se per esempio gli intervalli della nuova scala non sono 0 e 10 ma che ne so, 50 e 100?
beh.. ti ho esposto tutto il ragionamento nel dettaglio.. dovresti arrivarci da solo
Dovrebbe quindi essere
=(MAX($A$2:$A$999)-A2)/(MAX($A$2:$A$999)-MIN($A$2:$A$999))*100-50
Giusto?
Dovrebbe quindi essere
=(MAX($A$2:$A$999)-A2)/(MAX($A$2:$A$999)-MIN($A$2:$A$999))*100-50
Giusto?
evidentemente hai scritto qui ma non hai nemmeno provato..
ti saresti accorto che non riscala - come dici tu - tra 0 e 50 ma tra -50 e +50 - (ovviamente aggiungo io) - visto che il range invertito 0/1 prodotto dalla generica
=(MAX($A$2:$A$999)-A2)/(MAX($A$2:$A$999)-MIN($A$2:$A$999))
viene ampliato nel range 0/100 da quel *100 e poi scalato all'indietro di 50 - ottenendo quindi un -50/+50 - da quel -50
la formula corretta per riscalare tra 50 e 100 è quella di seguito
=50+(MAX($A$2:$A$999)-A2)/(MAX($A$2:$A$999)-MIN($A$2:$A$999))*(100-50)
dove appunto si indica il valore minimo della scala desiderata (il 50) a cui si aggiunge il generico 0/1 opportunamente amplificato come si desidera moltiplicandolo per la differenza tra il valore massimo e il valore minimo della scala desiderata *(100-50)
te l'ho aggiunta in colonna D
Allegati:
You must be logged in to view attached files.no
avevo scritto tutta una nuova spiegazione ma come spesso accade in questo forum è sparito tutto
ti allego la soluzione in colonna D e mi eclisso
Allegati:
You must be logged in to view attached files.Come mai è sparito tutto? Comunque grazie, ho capito.
Cosi sarebbe la formula invece se il problema fosse solo quello di riallocare in una nuova scala di valori senza invertire il massimo con il minimo
=50+(MAX($A$2:$A$999)-A2)/*(100-50)
Come mai è sparito tutto? Comunque grazie, ho capito.
come mai ogni tanto sparisca completamente un post quando lo si modifica? boh.. bisognerebbe chiederlo all'amministratore del sito
in quanto al fatto che tu abbia capito.. mi permetto di dissentire (a proposito.. se tu provassi le formule che indichi prima di scriverle qui, ti accorgeresti che non funzionano)
comunque - tralasciando ogni polemica - se il problema è semplicemente quello di ricollocare una serie in una nuova scala di valori, assodato che la soluzione per ricollocarla tra 0 e 1 è quella già ampiamente descritta sopra qualche giorno fa, ovvero
z = ( y - min(y) ) / ( max(y) - min(y) )
per ricollocarla tra un bottom e un top qualsiasi diventa
z = bottom + ( y - min(y) ) / ( max(y) - min(y) ) * ( top - bottom )
nel tuo esempio dove bottom è pari a 50 e top pari a 100, la formula excel corretta sarà
=50+(A2-MIN($A$2:$A$999))/(MAX($A$2:$A$999)-MIN($A$2:$A$999))*(100-50)
Allegati:
You must be logged in to view attached files.Il problema è che nella prima soluzione si parlava di invertire il minimo con il massimo nella nuova serie, è questo che mi ha portato un po' fuori strada.
Grazie
Il problema è che nella prima soluzione si parlava di invertire il minimo con il massimo nella nuova serie, è questo che mi ha portato un po' fuori strada.
Grazie
nella prima soluzione si invertivano minimo e massimo della serie perchè era quello che avevi chiesto tu
difatti se ricordi nell'analisi avevo scisso le due problematiche - inversione e ri-scalatura - per poi arrivare alla soluzione che le risolveva entrambe contemporaneamente
l'importante è che tu abbia risolto - meglio poi se hai anche capito
Buongiorno, chiedo se esistano altri metodi per riscalare i valori nel range di valore Minimo=1x10^-9 e Massimo= 1x10^-4
Per prima cosa ho creato una tabella su Excel nella quale in basso ho messo il valore minimo e in alto il valore massimo, poi ho suddiviso l'intervallo in 500 celle. In questo modo utilizzando dapprima la seguente formula (usando anche il $) partendo dal valore Minimo:
=( $Max- $Min)/n°di celle totale (ovvero $500 scritto con numero cella) ho trovato il secondo valore minimo
da questo nella terza cella del valore minimo:
=(($Max-$Min)/n°di celle totale )+ il secondo valore minimo (dalla quarta in poi questo valore varierà salendo verso il valore massimo)
Spero di essere stata abbastanza chiara.
ci sono altre formule per calcolare i valori fra questo intervallo Minimo= 1x10^-9 e Massimo= 1x10^-4??
ciao
se ti accodi a vecchie discussione risolte non ti vediamo
comunque il risultato che ottieni tu si può
ottenere anche con
=($A$1-$A$2)/500*RIF.RIGA(A1)
trascinando in basso
-
AutoreArticoli