Excel e gli applicativi Microsoft Office Riscalare un range di valori

LoginRegistrati
Stai vedendo 13 articoli - dal 1 a 13 (di 13 totali)
  • Autore
    Articoli
  • #22700 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 Risposta

      nicopana
      Partecipante

        Allego il file esempio su cui lavorare

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

        nicopana
        Partecipante

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

          #22711 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 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 Risposta

              ElleEsse
              Partecipante

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

                #22756 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 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 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 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 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 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 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  

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



                            vecchio frac - 2750 risposte

                            albatros54
                            albatros54 - 833 risposte

                            patel
                            patel - 724 risposte

                            Marius44
                            Marius44 - 634 risposte

                            Luca73
                            Luca73 - 587 risposte