Excel e gli applicativi Microsoft Office Correzione formula ore residue in base al database

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

    Franci70
    Partecipante
      2 pts

      Cari amici del Forum,
      vi scrivo per chiedere supporto su un file Excel che ho costruito seguendo i preziosi suggerimenti ricevuti in passato.

      Nella cartella sono presenti due fogli:

      "database": contiene le ore lavorate giornalmente dal collega Paolo Rossi;
      "PAOLO ROSSI": riporta l'inserimento delle ore per ciascun cliente.

      Nel foglio “PAOLO ROSSI”, alla cella L9 (evidenziata in rosso) viene indicato un residuo di 3 ore ma verificando il foglio “database” risulta che quel giorno sono state lavorate 6 ore e 45 minuti. Considerando che la giornata lavorativa intera è di 8 ore (e 5 ore il venerdì), il valore corretto del residuo dovrebbe essere 1 ora e 15 minuti.

      Vi chiedo cortesemente un suggerimento su come riformulare la formula (che contiene di default una giornata piena di 8 ore ed il venerdì di 5 ore) nella colonna L, affinché vada a leggere direttamente dal foglio "database" le ore effettivamente lavorate, calcolando correttamente le ore residue in base alla giornata effettivamente lavorata.

      Specifico che la versione utilizzata è Microsoft 365.

      Grazie come sempre a chi vorrà dedicarmi il suo tempo.

      Un caro saluto

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

      LukeReds
      Partecipante
        13 pts

        ciao,

        perchè duplicare i datt? basterebbe aggiungere una colonna nel foglio Database ("ore residue") per avere tutto in un solo foglio. Poi se vuoi un foglio per persona puoi creare una tabella pivot usando l'opzione "mostra pagine filtro rapporto"

        #53605 Score: 1 | Risposta

        Franci70
        Partecipante
          2 pts

          Ciao LukeReds, grazie innanzitutto per il tuo suggerimento di evitare la duplicazione di informazioni. 

          Il motivo per cui ho creato anche il foglio "PAOLO ROSSI" (la cartella naturalmente comprende un foglio per ciascun dipendente coinvolto, al momento 18)  è per avere un’interfaccia più semplice per l’inserimento dei dati per cliente, mentre il foglio "database" raccoglie solo il riepilogo giornaliero.

          Mi interessa molto capire come automatizzare il calcolo delle ore residue per ciascun foglio dipendente in base alle ore di effettivo lavoro presente in database (frutto di una power query, aggiornata mensilmente in base alle rilevazioni ore ricevute dall'ufficio personale).

          Se riesco a capire questo punto, posso sicuramente valutare di semplificare la struttura come suggerisci, magari integrando tutto in una pivot.

          Grazie ancora per il tuo tempo e la tua disponibilità.

          Un caro saluto

          #53606 Score: 0 | Risposta

          gianfranco55
          Partecipante
            90 pts

            ciao

            =SOMMA.PIÙ.SE(Database[Ore];Database[Data];J4;Database[Nominativo];"PAOLO ROSSI")

            che versione hai di excel

            #53607 Score: 0 | Risposta

            LukeReds
            Partecipante
              13 pts

              procedimento per avere un foglio per dipendente

               - aggiungere una colonna nel foglio Database ("ore residue", ancora da compilare nel file allegato) 

               - creare una pivot con i dati del foglio Database

              - mettere il nominativo nel quadrante filtro della pivot, Data sulle righe e  Ore negli importi

              - scheda "analisi tabella pivot" - opzioni - "mostra pagine filtro rapporto":viene automaticamente creata una pagina per persona/dipendente (sempre ammesso di aver capito la tua necessità). allego file per maggior chiarezza

              Ho aggiunto 2 persone per comprendere meglio il risultato ottenuto

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

              Franci70
              Partecipante
                2 pts

                Ciao Gianfranco55,

                innanzitutto grazie per il tuo intervento.

                Ho Microsoft 365 Apps for enterprise.

                Un caro saluto

                #53610 Score: 0 | Risposta

                gianfranco55
                Partecipante
                  90 pts

                  ciao

                  prova a mettere in una cella

                  =RAGGRUPPAPER(Database[[#Tutti];[Data]];Database[[#Tutti];[Ore]];SOMMA;3;0;;Database[Nominativo]="PAOLO ROSSI")

                  ho usato il foglio DATABASE

                  PAOLO ROSSI lo metti su una cella e farai riferimento a quello

                   

                  io ho messo (cancellare tutte le celle sotto) in J4

                  =RAGGRUPPAPER(Database[[#Tutti];[Data]];Database[[#Tutti];[Ore]];SOMMA;;0;;Database[Nominativo]="PAOLO ROSSI")

                  in L4

                  =LET(T;SE(GIORNO.SETTIMANA(SCEGLI.COL(J4#;1);1)=6;ORARIO(5;0;0)-SCEGLI.COL(J4#;2);ORARIO(8;0;0)-SCEGLI.COL(J4#;2));SE(SCEGLI.COL(J4#;1)="";"";SE(T<0;TESTO(ASS(T);"- "&"[hh]:mm");T)))

                  in M4

                  =SE(STRINGA.ESTRAI(L4#;1;1)="-";"Monte ore superato";"OK!")

                   

                   

                   

                   

                  #53611 Score: 0 | Risposta

                  Franci70
                  Partecipante
                    2 pts

                    Ciao a tutti,

                    ringrazio sia LukeReds per il suo esempio che ho già messo in pratica ed è sicuramente una valida alternativa.

                    Le formule proposte da Gianfranco55 sono valide e rispondono in pieno alle mie esigenze.

                    Considero la discussione risolta e chiusa.

                    Un caro saluto

                    #53612 Score: 0 | Risposta

                    gianfranco55
                    Partecipante
                      90 pts

                      franci

                       con una fai tutto

                      =LET(A;RAGGRUPPAPER(Database[[#Tutti];[Data]];Database[[#Tutti];[Ore]];SOMMA;;0;;Database[Nominativo]="PAOLO ROSSI");B;LET(T;SE(GIORNO.SETTIMANA(SCEGLI.COL(A;1);1)=6;ORARIO(5;0;0)-SCEGLI.COL(A;2);ORARIO(8;0;0)-SCEGLI.COL(A;2));SE(SCEGLI.COL(A;1)="";"";SE(T<0;TESTO(ASS(T);"- "&"[hh]:mm");T)));STACK.ORIZ(A;B;SE(STRINGA.ESTRAI(B;1;1)="-";"Monte ore superato";"OK!")))

                       

                      #53613 Score: 0 | Risposta

                      LukeReds
                      Partecipante
                        13 pts

                        grazie per la cortesia dimostrata nelle risposte, cosa tutt'altro che scontata

                        #53614 Score: 0 | Risposta

                        Franci70
                        Partecipante
                          2 pts

                          Ciao Gianfranco55,

                          la formula che mi hai indicato funziona perfettamente.

                          Non posso che ringraziarti nuovamente per il tempo e la pazienza dimostrata.

                          Un caro saluto

                          #53615 Score: 0 | Risposta

                          Franci70
                          Partecipante
                            2 pts

                            Grazie a te LukeReds, sono io che ti ringrazio nuovamente. E' un piacere potersi confrontare con cortesia e rispetto.

                            Un caro saluto

                          Login Registrati
                          Stai vedendo 12 articoli - dal 1 a 12 (di 12 totali)
                          Rispondi a: Correzione formula ore residue in base al database
                          Gli allegati sono permessi solo ad utenti REGISTRATI
                          Le tue informazioni: