Excel 2016



  • Controllo ore
    di NicoPana data: 11/01/2018 07:58:14

    Vi allego un file semplice dove però chiedo l'aiuto del forum per provare a fare questo controllo.

    Per un'attività lavorativa, devo impiegare una squadra di lavoro, che può essere composta massimo da 7 persone e un minimo di 2.
    L'attività può essere pagata con 3 voci di prezzo, e cioè quando la prestazione è fornita da 2 operai (prezzo P1), da 3 operai (prezzo P2) o da 7 operai (prezzo P3). In tale situazione cosa succede:
    squadra da 2 operai --> P1x1cad
    squadra da 3 operai --> P2x1cad
    squadra da 4 operai --> P1x2cad
    squadra da 5 operai --> P1x1cad + P2x1cad
    squadra da 6 operai --> P2x2cad
    squadra da 7 operai --> P3x1cad

    E fin qui tutto ok, riesco anche semplicemente ad automatizzare la generazione della somma da corrispondere con dei vari SE una volta inserito il numero di persone nel rapportino.

    La mia difficoltà è un'altra: c'è un altro tipo di controllo da dover automatizzare. Nella verifica del numero esatto di persone che hanno lavorato, se una persona per qualche motivo ha lavorato per un numero di ore inferiore a 4, questa persona non viene considerata, e pertanto non rientrerà nel calcolo della prestazione corretta da pagare.
    Io però non volevo far inserire il numero di ore lavorate di ogni singola persona, altrimenti il registro lavori diventerebbe enorme per un anno di attività ad esempio; quindi se volessi mantenere un solo rigo di registrazione giornaliera, inserendo il numero di ore complessive e il numero di persone, come posso poi fare ad effettuare questo controllo?
    Al momento nel file è ipotizzato che tutti abbiano lavorato 8 ore al giorno.

    Pensavo che io inserisco i dati di numero di persone e ore giornaliere, e poi la verifica la faccio in un'altra cella che mi da il numero effettivo di persone da considerare che è poi la cella che verrà usata per i SE che ho impostato prima.



  • di NicoPana data: 11/01/2018 08:08:22

    La giornata è da ipotizzare massimo di 8 ore.

    quindi un primo controllo che per esempio potrei fare se i dati voglio continuare ad inserirli cosi è che la verifica della media delle ore giornaliere (cioè ore/n°operai) sia uguale a 8:

    - se VERO, quel numero di operai è quello effettivo per fare i controlli poi su quale prestazione è da pagare
    - se FALSO, bisogna eliminare tanti operai da 8 ore finchè non si arriva a quello che ha lavorato meno di 8 ore; quel numero di operai "eliminati" sarebbe quello da considerare per la verifica del pagamento



  • di Luca73 data: 11/01/2018 09:05:16

    secondo me ti basta dire che il numero di operai è pari all'intero (=INT) del numero di ore lavorate diviso 8
    per esempio
    INT(56/8)=7 (sette persone che lavorano 8 ore)
    INT(55/8)=6 (una persona ha lavorato un ora in meno pertanto viene "eliminata"!
    Ciao
    Luca





  • di NicoPana data: 11/01/2018 11:37:49

    Ottimo, molto più semplificativo dei vari tentativi a sottrare via via un'unità.

    ora il problema è che delle eventuali persone che hanno lavorato meno di 8 ore, devo capire chi e se ha lavorato almeno 4 per poterlo comunque considerare in aggiunta alla squadra effettiva delle 8 ore



  • di NicoPana data: 11/01/2018 11:49:48

    potrei aggiungere +INT((H7-INT(H7/8)*8)/4) ??



  • di Luca73 data: 11/01/2018 12:07:45

    Ciao
    Devi cercare di spiegarti in modo che gli altri capiscono.
    scrivi che "eventuali persone che hanno lavorato meno di 8 ore, devo capire chi e se ha lavorato almeno 4 per poterlo comunque considerare in aggiunta alla squadra effettiva delle 8 ore" ma prima hai scritto "Io però non volevo far inserire il numero di ore lavorate di ogni singola persona, altrimenti il registro lavori diventerebbe enorme "

    Quindi
    Sinceramente non capisco....

    Gusto per aiutarti esistono anche gli arrotonda che se opportunamente usati ti possono aiutare a trovare l'intero più vicino con un certo peso (4 ore?).







  • di NicoPana data: 11/01/2018 16:02:13

    Si scusami mi sono reso conto di esser stato poco chiaro.

    Volevo dire: con la prima tua funzione INT... io riesco a calcolare il numero di persone della squadra che hanno lavorato 8 ore. Ed è un primo step, perché questo numero è la base per capire che prezzo poi farmi pagare.

    Sulla restante parte di persone che hanno lavorato meno di 8 ore al giorno, vorrei capire se ce n'è qualcuna che ne ha fatte almeno 4, perché in questo caso mi verrebbe pagato comunque per intero. Ecco perché avevo pensato di aggiungere alla tua formula +INT((H7-INT(H7/8)*8)/4)



  • di Luca73 data: 11/01/2018 16:11:17

    si funziona probabilmente ci sono anche metodi più semplice ma xcosì su due piedi non mi viene in mente niente
    Ciao