› Excel e gli applicativi Microsoft Office › Rie piloghi per codice
-
AutoreArticoli
-
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.Buonaserase 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 interpretatoIn 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 229hautocarri targati sede 104escavatori cingolati con impianto ausiliare 64pale gommate 56Questa 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.BuongiornoOra 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 grandiSi 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.Aggiornare una pivot in automatico è una cosa abbastanza semplice sono poche righe di codice VBA da immettere nel Worsheets ActivateLa macro parte quando si attiva il foglio che la contiene.Per scrivere il codice basta registrarlo e poi fare poche modifiche.Ecco un esempioPrivate Sub Worksheet_Activate()
ActiveSheet.PivotTables(1).PivotCache.Refresh
End Sub
Sicuramente le Pivot sono uno strumento molto potente per fare report e similari.CiaoLucaBuonasera 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 mezziin 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 erroreAllegati:
You must be logged in to view attached files.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.Buonaseraescono 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.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 fileAllegati:
You must be logged in to view attached files.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 -
AutoreArticoli
