Excel e gli applicativi Microsoft Office Rie piloghi per codice

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

    nicopana
    Partecipante
      Allego un file: nel foglio DBregistrazioni, ci sono tutti i dati di registrazione di un rapportino, data, turno  TAR(commessa), codice mezzo, Descrizione categoria mezzo, ore lavorate.
      Nel foglio di riepilogo, io vorrei stilare una classifica (dalla 1 alla 5) delle categorie di mezzo più impiegate su quel TAR, e per ogni categoria, sempre su quel TAR, andare a sommare il numero di ore spese.
      Troverete già qualche mio spunto di formula, ma chiaramente non funzionante.
      Allegati:
      You must be logged in to view attached files.
      #1334 Score: 0 | Risposta

      D@nilo
      Partecipante
        12 pts
        Buonasera
        se nel file mettevi il risultato da ottenere magari era più chiaro l'obiettivo comunque in E8 da trascinare in basso
        =MATR.SOMMA.PRODOTTO((('DB registrazioni'!$F$7:$F$449=C8)+('DB registrazioni'!$D$7:$D$449=$C$2))*'DB registrazioni'!$G$7:$G$449)    a patto di avere bene interpretato
        #1347 Score: 0 | Risposta

        nicopana
        Partecipante
          In realtà la formula che mi hai postato era simile a quella che c'era già nella mia cella, e quindi ti ringrazio, quella serviva per il calcolo delle ore per ogni categoria individuata, però non posso testarla perché è appunto il calcolo delle categorie di mezzo che non funziona.
          Ti ho adesso revisionato il file allegato con un esempio. Se facciamo un filtro in DBregistrazioni sulla commessa 5039 ad esempio, ottengo:
          autocarri targati 229h
          autocarri targati sede 104
          escavatori cingolati con impianto ausiliare 64
          pale gommate 56
          Questa sarebbe la classifica delle categorie di mezzo che vorrei mi venissero visualizzate da C8 a C12. Essendo solamente 4  e non 5, in C12 possiamo anche avere "". Ma nel caso in cui per esempio fossero più di 5 le categorie coinvolte non fa niente per il momento, consideriamo solo le prime 5.
          Allegati:
          You must be logged in to view attached files.
          #1349 Score: 0 | Risposta

          D@nilo
            Buongiorno
            Ora sono da cell infatti avevo visto che le categorie sono sbagliate in quanto estrai i 5 grandi in funzione delle ore quindi ti restituisce sempre gli stessi anche cambiando il criterio della convalida.....in giornata ci metto mano e sicuramente si risolve creando una lista univoca su cui ci calcoliamo i valori interessati e prendiamo i 5 grandi
            #1352 Score: 0 | Risposta

            nicopana
            Partecipante
              Si infatti penso che la soluzione potesse essere risolta creando una pivot ad esempio, che quindi andava a creare i totali, o per commessa o per categoria di mezzo...però volevo capire se si potesse evitare perché altrimenti, dato che il DBregistrazioni viene giornalmente aggiornato con nuovi record, per ottenere un dato anch'esso aggiornato in termini di riepiloghi, dovrei ogni volta andar prima ad aggiornare la pivot.
              #1364 Score: 0 | Risposta

              Luca73
              Partecipante
                58 pts
                Aggiornare una pivot in automatico è una cosa abbastanza semplice sono poche righe di codice VBA da immettere nel Worsheets Activate
                La macro parte quando si attiva il foglio che la contiene.
                Per scrivere il codice basta registrarlo e poi fare poche modifiche.
                Ecco un esempio
                Private Sub Worksheet_Activate()
                ActiveSheet.PivotTables(1).PivotCache.Refresh
                End Sub
                Sicuramente le Pivot sono uno strumento molto potente per fare report e similari.
                Ciao
                Luca
                #1373 Score: 0 | Risposta

                D@nilo
                Partecipante
                  12 pts
                  Buonasera ho utilizzato due colonne di servizio nel foglio Riepilogo per commessa (eventualmente da nascondere)
                  quindi in G7 da trascinare in basso
                  =SE.ERRORE(INDICE('DB registrazioni'!$F$5:$F$1000;CONFRONTA(0;INDICE(CONTA.SE($G$6:G6;'DB registrazioni'!$F$5:$F$1000&""););0));"") con cui ricaviamo la lista univoca dei mezzi
                  in F7 da trascinare in basso
                  =MATR.SOMMA.PRODOTTO(('DB registrazioni'!$D$5:$D$1000=$C$2)*('DB registrazioni'!$F$5:$F$1000=G7))
                  in C8 da trascinare in basso fino a C12
                  =SE.ERRORE(INDICE($G$7:$G$1000;CONFRONTA(SE(GRANDE($F$7:$F$1000;B8)=0;"";GRANDE($F$7:$F$1000;B8));$F$7:$F$1000;0));"")
                  quindi in E8 da trascinare fino a E12
                  =SOMMA.PIÙ.SE('DB registrazioni'!$G$5:$G$1000;'DB registrazioni'!$F$5:$F$1000;C8;'DB registrazioni'!$D$5:$D$1000;$C$2)
                  P.S.   nella colonna dei mezzi i non disponibili hai messo #N\D....togli # se no le formule lo riconoscono come un errore
                  Allegati:
                  You must be logged in to view attached files.
                  #1381 Score: 0 | Risposta

                  nicopana
                  Partecipante

                    Mi sono permesso di fare una modifica sulla colonna F, dove ho aggiunto anche il calcolo in un singolo mese di riferimento, magari controlla che sia stato fatto per bene.

                    Comunque davvero ottime formule. Avrei un piccolo chiarimento però: nella colonna G viene calcolata la lista univoca delle categorie di mezzo utilizzate, e nella colonna F il numero di volte della singola categoria in cui si presenta in un mese, adesso. E sin qui ok.

                    Da C8 a C12 vengono quindi elencate massimo 5 macrocategorie principali di mezzi che vengono movimentate, e quindi poi in E8-E12 il relativo numero di ore. Ma in C8-C12 le categorie non dovrebbero essere univoche? Te lo chiedo perché ad esempio se fai una selezione sulla commessa 5085, la categoria autocarri targati compare più volte.

                    Ti allego revisione del file

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

                    D@nilo
                    Partecipante
                      12 pts
                      Buonasera
                      escono fuori i doppi in quanto se ci sono dei valori che si ripetono nei 5 GRANDI la funzione scritta va a pescare sempre il primo quindi ci sono le ripetizioni...quindi bisogna percorrere un'altra strada e con l'aiuto di un amico su un altro forum e modificandola per questa esigenza quindi in C8 da attivare con i tasti CTRL+SHIFT+INVIO e trascinare fino a C12
                      =SE(INDIRETTO(INDIRIZZO(CONFRONTA(GRANDE($F$7:$F$1000-RIF.RIGA($F$7:$F$1000)/100;RIGHE(A7:$A$7));$F$7:$F$1000-RIF.RIGA($F$7:$F$1000)/100;0)+6;6))=0;"";INDICE($G$7:$G$1000;CONFRONTA(GRANDE($F$7:$F$1000-RIF.RIGA($F$7:$F$1000)/100;RIGHE(A7:$A$7));$F$7:$F$1000-RIF.RIGA($F$7:$F$1000)/100;0)))
                      Allegati:
                      You must be logged in to view attached files.
                      #1585 Score: 0 | Risposta

                      nicopana
                      Partecipante
                        La formula credo che funzioni bene. Penso che ora manchi solo un piccolo dettaglio: ho aggiunto il mese nel calcolo dei valori nella colonna F, ma credo che avendo in DB registrazioni usato un formato personalizzato per la data (00-00-0000 per un inserimento veloce senza / tra i campi), il mese non viene calcolato perfettamente e quindi sballano anche le ore e le categorie.
                        Un esempio: se provi a selezionare la commessa 4923, ti trova le 16 ore, ma non ti evidenzia nessuna categoria.
                        Ti allego la revisione del file
                        Allegati:
                        You must be logged in to view attached files.
                        #1597 Score: 0 | Risposta

                        nicopana
                        Partecipante
                          Confermo che il problema che resta da risolvere è far riconoscere correttamente il mese alla formula calcolata però su un formato personalizzato, anziché di tipo data, del tipo 00-00-0000
                          #1604 Score: 0 | Risposta

                          nicopana
                          Partecipante
                            ho risolto con una int(stringa.estrai) sulla data in DB registrazioni isolando le due cifre centrali del mese in modo tale da farlo riconoscere come tale.
                          Login Registrati
                          Stai vedendo 12 articoli - dal 1 a 12 (di 12 totali)
                          Rispondi a: Rie piloghi per codice
                          Gli allegati sono permessi solo ad utenti REGISTRATI
                          Le tue informazioni: