Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di luisa227
    Registrato dal
    Mar 2002
    Messaggi
    2,305

    [EXCEL] formula per calcolo ore svolte

    Ho 2 fogli: struttura e dettaglio.

    Nel foglio Struttura devo calcolare le ore svolte fino alla data selezionata (es. quante ore il docente pollo ha fatto fino al 15 settembre?).
    Il seguente foglio è impostato nel seguente modo (spero si capisca):

    UF - N - Argomenti - Totale - Frontali - FAD - Docente -Costo - Pianificate - Ore da pianificare- Svolte alla data - 15/09/09 - Fine Corso - 14/10/2009

    1.1 1 Elementi 4.00 4.00 0.00 pollo 34,94 4.00 0.00 ............
    1.2 2 Accoglienza 2.00 2.00 0.00 Luisa1 34,94 2.00 0.00 ............
    ect........................

    Vi sono le intestazioni nella riga 1: nella cella L1 si inserisce la data riferita alle ore svolte, mentre nella cella n1 la data di fine corso.
    Dalla riga 2 fino alla riga 16 vi sono i dati. Nella riga k2 viene inserita la formula che mi permette di calcolare le ore svolte alla data inserita in L1.
    La formula va ripetuta fino alla cella k16.
    Questa è la formula che ho ora (ma che non funziona, perchè mi dà sempre 0) che è la stessa usata per il calcolo delle ore pianificate (con il solo cambio della cella $l$1 in $n$1) in cui funziona (o almeno fa quello che mi serve).

    Quello che dovrei dire per la cella k2 é: "se nell'intervallo dei docenti (b2:b2161) trovi il docente pollo (g2) e se nell'intervallo delle uf (e2:e2161) trovi l'uf 1.1 (a2), allora somma le celle corrispondenti alle ore (f2:f2161), ma solo quelle in cui nell'intervallo delle date (a2:a2161) la data è minore di quella in l1. (quindi come risultato, se non ci sono altri pollo prima del 15-09-09, dovrebbe uscirmi in k2 il numero 2 e quindi significherebbe che le altre 2 ore di polo sono dopo il 15-09-09).

    Penso che l'errore sia nel primo pezzo nel calcolo delle date....
    [code]
    =SE(dettaglio!$A$2:$A$2161<=DATA.VALORE($l$1);SE(S OMMA.SE(dettaglio!$B$2:$B$2161;$G2;dettaglio!$F$2: $F$2161)>0;SOMMA.SE(dettaglio!$E$2:$E$2161;$A2;det taglio!$F$2:$F$2161));"CONTROLLARE DATA PREVISTA FINE CORSO")
    [\code]

    Foglio Dettaglio: vi sono le intestazioni nella riga 1 e poi a partire dalla riga 2 fino alla 2161 i dati. Le date si formano automaticamente (quindi non sono sempre uguali) e comunque sono sempre escusi il sabato e la domenica. Ogni data si ripete per 8 volte.


    Data - Docente - Materia - Orario - Uf - Ore
    01-set pollo Elementi 18.00-19.00 1.1 1.00
    01-set Luisa1 Accoglienza 19.00-20.00 1.2 1.00
    01-set Luisa1 Accoglienza 20.00-21.00 1.2 1.00
    01-set Pino2 Pari 21.00-22.00 1.3 1.00
    01-set 0 #N/D 0.0-0.0 0 0.00
    01-set 0 #N/D 0.0-0.0 0 0.00
    01-set 0 #N/D 0.0-0.0 0 0.00
    01-set 0 #N/D 0.0-0.0 0 0.00
    02-set Pino2 Accessibilità 18.00-19.00 1.7 1.00
    02-set Pino2 Accessibilità 19.00-20.00 1.7 1.00
    02-set Luisa1 Tutoring 20.00-21.00 1.4 1.00
    02-set pollo Elementi 21.00-22.00 1.1 1.00
    02-set 0 #N/D 0.0-0.0 0 0.00
    02-set 0 #N/D 0.0-0.0 0 0.00
    02-set 0 #N/D 0.0-0.0 0 0.00
    02-set 0 #N/D 0.0-0.0 0 0.00
    ect..................

    Come posso far funzioanre il tutto? Dove sbaglio?
    Spero in un vostro aiuto, grazie
    Luisa.

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    A naso direi che ti serve la funzione matr.somma.prodotto().


    =MATR.SOMMA.PRODOTTO((b2:b2161="pollo")*(e2:e2161= "1.1")*(f2:f2161)*(a2:a2161<l1))

    Probabile che ci sia qualcosa da ritoccare, tipo l'aggiunta di data.valore() e simili ma il senso dovrebbe essere questo.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.