Excel e gli applicativi Microsoft Office Riconosci l'intruso

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

    nicopana
    Partecipante

      Vi allego un file, dove ci sono 5 numeri, che poi dovrebbero corrispondere ad una sequenza decrescente dal primo al quinto (estratti automaticamente da un sistema di rifornimento gasolio).

      Ogni tanto qualcosa va storto, ci sono errori di imputazione manuale errati, o il sistema va in tilt e mette 1.

      Siccome poi c'è la formula in F3, che calcola la differenza tra il più grande e il più piccolo della sequenza, essendo in questo caso il valore 1 un valore spurio, secondo voi quale può essere una formula intelligente per non considerare nella differenza in f3 quel valore 1?

      #27388 Score: 0 | Risposta

      nicopana
      Partecipante

        riallego il file

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

        GiuseppeMN
        Partecipante
          19 pts

          Buona sera, @nicopana;
          purtroppo non mi è chiaro lo scopo della Formula in Cella "F3":
          =+SE.ERRORE((GRANDE(A3:E3;1)-PICCOLO(A3:E3;CONTA.SE(A3:E3;0)+1));"")
          Ovviamente si riesce a calcolare:

          =GRANDE($A$3:$E$3;1)

          Risultato = 5.623

          =PICCOLO($A$3:$E$3;2)

          Risultato = 5.555

          Se puoi precisare più compiutamente il risultato voluto dalla Formula in "F3" forse riesco a esserti più utile.

           

          Giuseppe

          #27392 Score: 0 | Risposta

          Santuberto
          Partecipante
            2 pts

             

             

            Buonasera a tutti. Neppure io, come GiuseppeMN (un saluto), riesco a comprendere chiaramente la funzione in F3. Presumo che il +1 presente nel conta.se(a3:e3;0)+1, serva ad eliminare lo zero. Se ho intuito correttamente, userei la matriciale =max(a3:e3)-min(se(a3:e3>0;a3:e3)) Ripeto: matriciale

            #27393 Score: 0 | Risposta

            Santuberto
            Partecipante
              2 pts

               

               

              Forse è il caso che chiarisca meglio quanto ho proposto. Perché la mia formula possa funzionare, non si deve mai avere il nr 1 come risultato nella serie a3:e3, ma si deve avere lo 0 (zero). Quindi, quando il sistema va il tilt (come scritto da Nicopana), non deve far apparire il nr 1, ma lo zero.

              #27395 Score: 0 | Risposta

              D@nilo
              Partecipante
                12 pts

                Buonasera a tutti

                se l'utente vuole fare il grande meno il piccolo escludendo gli uno 

                 

                =GRANDE(A3:E3;1)-MIN(SE(A3:E3>1;A3:E3))  da confermare matriciale (CTRL+SHIFT+INVIO)

                oppure 

                =GRANDE(A3:E3;1)-INDICE(A3:E3;CONFRONTA(INDICE(AGGREGA(15;6;(A3:E3+RIF.COLONNA(A3:E3)/10^5)/(A3:E3>1);1);;);INDICE((A3:E3+(RIF.COLONNA(A3:E3)/10^5));;);0))

                da inviare normale

                #27397 Score: 0 | Risposta

                GiuseppeMN
                Partecipante
                  19 pts

                  Buona sera a Tutti.

                  @D@nilo, ipotizza:
                  ... se l'utente vuole fare il grande meno il piccolo escludendo gli uno ...

                  Se fosse veramente così penso sarebbe possibile utilizzare:
                  Grande - Piccolo proposte in #27391

                  Non ci resta che rimanere in religiosa attesa di un chiarimento dell'utente; ovviante compatibilmente con i suoi impegni.

                  Giuseppe

                  #27400 Score: 0 | Risposta

                  D@nilo
                  Partecipante
                    12 pts

                    Buongiorno

                    @giuseppe con la proposta in  #27391 se per caso ci sono due uno in A3:E3 cosi ti pescherebbe comunque il secondo uno....

                    #27403 Score: 0 | Risposta

                    GiuseppeMN
                    Partecipante
                      19 pts

                      È vero.

                      Giuseppe

                      #27408 Score: 0 | Risposta

                      nicopana
                      Partecipante

                        Grazie per le risposte, e scusate per il ritardo.

                        Provo a fornirvi i chiarimenti richiesti:

                        - l'esempio che vi ho allegato serviva a sottolineare il fatto che, se all'interno di una sequenza di 5 numeri in ordine crescente dal 5 all'1, più o meno pressocchè in un intorno comune, se si presentavano delle cifre spurie (come l'1 in questo caso), non doveva essere considerato

                        - credo che la formula del file non contempli il fatto di eliminare l'1. Infatti il risultato nella formula F3 è dato proprio dalla differenza tra GRANDE (5623) e PICCOLO (1), quando invece quest'ultimo dovrebbe essere il valore in N3 (cioè 5555), e quindi dare un risultato diverso

                        Quindi, sicuramente la formula dovrà in primis contemplare il fatto di non considerare ne come GRANDE ne come PICCOLO i valori 0 e 1 che spesso si possono presentare.

                        #27410 Score: 0 | Risposta

                        D@nilo
                        Partecipante
                          12 pts

                          Ciao

                          Allega un file con un po' di esempi delle situazioni che si possono presentare e metti i risultati che vuoi ottenere scritti a mano 

                          #27411 Score: 0 | Risposta

                          gianfranco55
                          Partecipante
                            91 pts

                            ciao

                            =GRANDE(A3:E3;1)-MIN($A$3:$E$3;CONTA.SE($A$3:$E$3;"<2")+1)

                            #27412 Score: 0 | Risposta

                            nicopana
                            Partecipante

                              Nelle righe 4 6 e 8 dell'allegato ti ho inserito i 3 casi che tipicamente andrebbero NON considerati, cioè con valori pari a 1 o 0, o quelli dove possono capitare qualche valore con cifre numeriche superiori al resto dei 5.

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

                              nicopana
                              Partecipante

                                Il caso della riga 8 lo potresti più semplicemente sostituire con un controllo che dal valore 1 al valore 5 devono essere valori descrescenti (ho pensato questo perché se si inserisce un controllo sul numero di cifre, quando magari poi capita un valore con i decimali, pur essendo corretto nella sequenza, per numero di cifre maggiore verrebbe escluso).

                                #27415 Score: 0 | Risposta

                                nicopana
                                Partecipante

                                  gianfranco55 ha scritto:

                                  =GRANDE(A3:E3;1)-MIN($A$3:$E$3;CONTA.SE($A$3:$E$3;"<2")+1)

                                  Non funziona, calcola la differenza tra GRANDE e 1

                                  #27416 Score: 0 | Risposta

                                  gianfranco55
                                  Partecipante
                                    91 pts

                                    ciao

                                    perché sono scemo io

                                    va messo piccolo non min

                                    =GRANDE(A3:E3;1)-PICCOLO($A$3:$E$3;CONTA.SE($A$3:$E$3;"<2")+1)

                                    #27417 Score: 0 | Risposta

                                    nicopana
                                    Partecipante

                                      gianfranco55 ha scritto:

                                      ciao

                                      Adesso il calcolo funziona, vanno solo eliminati i dollari sulla riga nel PICCOLO. Se ho ben capito, hai eliminato la considerazione di 0 e 1 giusto?

                                      #27418 Score: 0 | Risposta

                                      gianfranco55
                                      Partecipante
                                        91 pts

                                        giusto eliminati gli 0 e gli 1

                                         

                                        metti gli assoluti solo sulla colonna

                                         

                                        #27419 Score: 0 | Risposta

                                        nicopana
                                        Partecipante

                                          Ok, grazie.

                                          Si adesso resterebbe solo il caso di valori con numero di cifre diverso, che avevo suggerito di provare a risolvere come un controllo dal rifornimento 1 al rifornimento 5 (essendo temporalmente successivi) di una sequenza decrescente, andando quindi ad escludere il valore spurio

                                          #27420 Score: 0 | Risposta

                                          nicopana
                                          Partecipante

                                            Tipo ad esempio, in questa sequenza ( 7208/7187/594/7107/0) lo 0 va già via, ma dovrebbe andar via anche il 594

                                            In quest'altra sequenza ( 82072/4852/13260/13253/13239) dovrebbero andar via i primi 2, anche se in questo caso è più complicata come analisi immagino, quindi nel caso mi basterebbe l'analisi sulla prima sequenza

                                            #27421 Score: 0 | Risposta

                                            gianfranco55
                                            Partecipante
                                              91 pts

                                              ciao

                                              complicata si anche perchè

                                              ( 82072/4852/13260/13253/13239)

                                              il 4852 si capisce non è in ordine decrescente

                                              ma il 82072 è esatto.

                                              bisognerebbe decidere se devono rientrare in un range

                                              che so 13000-13999

                                              in pratica usare le prime due cifre per il raffonto

                                              e non mi sembra semplice

                                              #27422 Score: 0 | Risposta

                                              nicopana
                                              Partecipante

                                                si hai ragione. In effetti bisognerebbe individuare una sorta di "intorno" entro il quale far variare i numeri.

                                                Mi hai dato però questo spunto, e se si estraesse con SINISTRA le prime due cifre di ogni numero, e se ci fosse tra le 2 celle consecutive una differenza superiore a 1, non si considerava la 1a e poi via via in avanti?

                                                Quindi se per esempio consideri la stringa che ti ho postato ci sarebbe da fare questo controllo:

                                                82-48 >1 (non si considera la 1a cella)

                                                48-13 >1 (non si considera la 2a cella)

                                                13-13 non è maggiore di 1 (si può considerare questa cella)

                                                E fin qui potrebbe funzionare, però poi ho trovato anche una stringa tipo questa ( 4890/48873/48843/48806/48774), dove il primo numero è in errore, perché manca una cifra, ma in realtà il controllo da me pensato non restituirebbe l'errore

                                                #27423 Score: 0 | Risposta

                                                gianfranco55
                                                Partecipante
                                                  91 pts

                                                  ciao

                                                  non è ancora perfetta ma usando delle colonne d'appoggio 

                                                  qualcosa ne è uscito

                                                  =GRANDE(SE((SINISTRA(G3:K3;2)*1>=MODA(SINISTRA(G3:K3;2)*1)-1)*(SINISTRA(G3:K3;2)*1<=MODA(SINISTRA(G3:K3;2)*1)+1)*(G3:K3>0);G3:K3);1)-PICCOLO(SE((SINISTRA(G3:K3;2)*1>=MODA(SINISTRA(G3:K3;2)*1)-1)*(SINISTRA(G3:K3;2)*1<=MODA(SINISTRA(G3:K3;2)*1)+1)*(G3:K3>0);G3:K3);1)

                                                  https://www.dropbox.com/s/idbzg5io5xrokwa/copia%20di%20sequenza%20%282%29.xlsx?dl=0

                                                   

                                                  #27424 Score: 0 | Risposta

                                                  nicopana
                                                  Partecipante

                                                    Con le colonne di appoggio ok, ma perché secondo te è giusto usare la funzione MODA? perché se non mi sbaglio questa restituisce un numero che all'interno di un intervallo si presenta con maggiore frequenza. Me lo chiedevo perché in una sequenza tipo, si tratterebbe di 5 valori univoci

                                                    #27425 Score: 0 | Risposta

                                                    gianfranco55
                                                    Partecipante
                                                      91 pts

                                                      ciao

                                                      ho usato moda per trovare il valore più frequente

                                                      ma poi lo valuto con un range di +/-1

                                                      se trova 13

                                                      valuterà da 12 a 14

                                                      metti questa in G3 e tirala a destra e in basso

                                                      =SE(E(A3>B3;MODA(LUNGHEZZA($A3:$E3))=LUNGHEZZA(A3));A3;0)

                                                      che elimina la possibilità di trovare numeri sfalsati

                                                      tipo

                                                      1382072 4852 13260 13253 13239

                                                      visto che usiamo le ultime due cifre

                                                       

                                                      fai delle prove

                                                       

                                                    Login Registrati
                                                    Stai vedendo 25 articoli - dal 1 a 25 (di 34 totali)
                                                    Rispondi a: Riconosci l'intruso
                                                    Gli allegati sono permessi solo ad utenti REGISTRATI
                                                    Le tue informazioni: