Excel e gli applicativi Microsoft Office Riscalare un range di valori

Login Registrati
Stai vedendo 15 articoli - dal 1 a 15 (di 15 totali)
  • Autore
    Articoli
  • #22700 Score: 0 | Risposta

    nicopana
    Partecipante

      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ù?

       

       

      #22701 Score: 0 | Risposta

      nicopana
      Partecipante

        Allego il file esempio su cui lavorare

        Allegati:
        You must be logged in to view attached files.
        #22703 Score: 0 | Risposta

        nicopana
        Partecipante

          I valori N.A. possono chiaramente essere tralasciati nel calcolo

          #22711 Score: 0 | Risposta

          ElleEsse
          Partecipante

            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.
            #22714 Score: 0 | Risposta

            nicopana
            Partecipante

              Grazie mille.

              Cosa succede se per esempio gli intervalli della nuova scala non sono 0 e 10 ma che ne so, 50 e 100?

              #22715 Score: 0 | Risposta

              ElleEsse
              Partecipante

                beh.. ti ho esposto tutto il ragionamento nel dettaglio.. dovresti arrivarci da solo  

                #22756 Score: 0 | Risposta

                nicopana
                Partecipante

                  Dovrebbe quindi essere

                  =(MAX($A$2:$A$999)-A2)/(MAX($A$2:$A$999)-MIN($A$2:$A$999))*100-50

                  Giusto?

                  #22758 Score: 0 | Risposta

                  ElleEsse
                  Partecipante

                    nicopana ha scritto:

                    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.
                    #22760 Score: 0 | Risposta

                    ElleEsse
                    Partecipante

                      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.
                      #22764 Score: 0 | Risposta

                      nicopana
                      Partecipante

                        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)

                        #22766 Score: 0 | Risposta

                        ElleEsse
                        Partecipante

                          nicopana ha scritto:

                          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.
                          #22784 Score: 0 | Risposta

                          nicopana
                          Partecipante

                            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

                            #22791 Score: 0 | Risposta

                            ElleEsse
                            Partecipante

                              nicopana ha scritto:

                              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  

                              #40657 Score: 0 | Risposta

                              Laura Maestrelli

                                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?? 

                                #40658 Score: 0 | Risposta

                                gianfranco55
                                Partecipante
                                  51 pts

                                  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

                                Login Registrati
                                Stai vedendo 15 articoli - dal 1 a 15 (di 15 totali)
                                Rispondi a: Riscalare un range di valori
                                Gli allegati sono permessi solo ad utenti REGISTRATI
                                Le tue informazioni: